浅谈linux文件权限

2023-05-16

权限介绍

访问权限

  • 读取(r): 允许查看文件内容,显示目录列表
  • 写入(w): 允许修改文件内容,允许在目录中新建、删除、移动文件或者子目录
  • 可执行(x): 允许运行程序,切换目录
  • 无权限(-): 没有权限

linux中的文件权限标记

[haha@localhost .vnc]$ ls -l
总用量 28
-rw-r--r--. 1 haha haha  332 725 14:30 config
-rw-rw-r--. 1 haha haha 6950 725 15:06 localhost.localdomain:2.log
-rw-rw-r--. 1 haha haha    5 725 15:02 localhost.localdomain:2.pid
-rw-------. 1 haha root    8 725 14:30 passwd
-rw-rw-r--. 1 haha haha   10 725 15:08 test
-rwxr-xr-x. 1 haha haha  133 725 15:03 xstartup

权限标记理解

-rwxr-xr-x这一串看不懂?来来来,看完下面的就理解了。

权限项首位标记执行执行执行
字符表示-、d、c、lrwxrwxrwx
数字表示421421421
权限分配文件所有者(属主)文件所有者(属主)文件所有者(属主)文件所属组(属组)文件所属组(属组)文件所属组(属组)其他用户其他用户其他用户

首位标记含义解释

-代表普通文件
d代表目录
c代表字符型文件
l代表链接文件

修改权限

方式一(易理解):逐个权限设置

chmod ugoa[rwx] 文件/目录

标记符

标记符解释
uuser 文件所有者(属主)
ggroup文件所属组(属组)
oother其他用户
aall所有用户

操作

标记符解释
+增加权限
-减去权限
=设置一个权限

示例:创建一个仅所有者可读可写

[root@localhost file]# touch 仅所有者可读可写
[root@localhost file]# ls -l
总用量 0
-rw-r--r--. 1 root root 0 725 15:56 仅所有者可读可写
[root@localhost file]# chmod g-r,o-r 仅所有者可读可写
[root@localhost file]# ls -l
总用量 0
-rw-------. 1 root root 0 725 15:56 仅所有者可读可写

示例:增加可执行权限

chmod +x 可执行文件

示例:去掉所有权限

chmod -xwr 文件

方式二(简洁):数字权限使用格式

这里我的直接引用大佬的文章中的内容了。
在这种使用方式中,首先我们需要了解数字如何表示权限。 首先,我们规定 数字 4 、2 和 1表示读、写、执行权限(具体原因可见下节权限详解内容),即 r=4,w=2,x=1 。此时其他的权限组合也可以用其他的八进制数字表示出来,

如:

rwx = 4 + 2 + 1 = 7

rw = 4 + 2 = 6

rx = 4 +1 = 5

  • 若要同时设置 rwx (可读写运行) 权限则将该权限位 设置 为 4 + 2 + 1 = 7

  • 若要同时设置 rw- (可读写不可运行)权限则将该权限位 设置 为 4 + 2 = 6

  • 若要同时设置 r-x (可读可运行不可写)权限则将该权限位 设置 为 4 +1 = 5

上面我们提到,每个文件都可以针对三个粒度,设置不同的rwx(读写执行)权限。即我们可以用用三个8进制数字分别表示 拥有者 、群组 、其它组( u、 g 、o)的权限详情,并用chmod直接加三个8进制数字的方式直接改变文件权限。语法格式为 :

chmod <abc> file...

其中
a,b,c各为一个数字,分别代表User、Group、及Other的权限。
相当于简化版的
chmod u=权限,g=权限,o=权限 file…
而此处的权限将用8进制的数字来表示User、Group、及Other的读、写、执行权限。

范例:

设置所有人可以读写及执行

#等价于  chmod u=rwx,g=rwx,o=rwx file 或  chmod a=rwx file
chmod 777 file  

设置拥有者可读写,其他人不可读写执行

#等价于  chmod u=rw,g=---,o=--- file 或 chmod u=rw,go-rwx file 
chmod 600 file

常见的权限

-数字解释
-rw-------600只有拥有者有读写权限。
-rw-r--r--644只有拥有者有读写权限;而属组用户和其他用户只有读权限。
-rwx------700只有拥有者有读、写、执行权限。
-rwxr-xr-x755拥有者有读、写、执行权限;而属组用户和其他用户只有读、执行权限。
-rwx--x--x711拥有者有读、写、执行权限;而属组用户和其他用户只有执行权限。
-rw-rw-rw-666所有用户都有文件读、写权限。
-rwxrwxrwx777所有用户都有读、写、执行权限。

参考

  • 《一文带你彻底搞懂Linux 文件权限管理》
    https://segmentfault.com/a/1190000039202476
  • 《Linux权限详解(chmod、600、644、666、700、711、755、777、4755、6755、7755)》

https://blog.csdn.net/u013197629/article/details/73608613

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

浅谈linux文件权限 的相关文章

  • 如何在 Linux 中检测通过 GUI 登录的用户

    我想在我的程序中捕获通过 GUI 登录的用户名 我的程序作为守护进程从 root 登录运行 如果非 root 用户通过 GUI 登录 我的程序应该会收到通知 我正在粘贴我当前的程序 该程序调用一个 perl 脚本 利用系统调用来检查当前登录
  • 获取后台进程的退出代码

    我有一个从我的主 bourne shell 脚本中调用的命令 CMD 该命令需要很长时间 我想修改脚本如下 作为后台进程并行运行命令 CMD CMD 在主脚本中 有一个循环每隔几秒监视生成的命令 该循环还向标准输出回显一些消息 指示脚本的进
  • 无法使用 sysctl 更改每个进程的最大打开文件数

    我的实际极限是1024 ulimit a core file size blocks c 0 data seg size kbytes d unlimited scheduling priority e 0 file size blocks
  • 将管道输入转储到文件的简单方法是什么? (Linux)

    我正在寻找一个小 shell 脚本 它可以将任何内容通过管道传输到其中 并将其转储到文件中 用于电子邮件调试目的 有任何想法吗 unix 命令 tee 可以做到这一点 man tee
  • 在 docker windows 上运行 linux 容器

    我在 Windows 10 机器上安装了 Docker for Windows 它要求我启用 HyperV 功能 一切都安装正确并且运行良好 虽然有一件事让我大吃一惊 我实际上能够在 docker windows 上运行 Linux 容器
  • CMake:不要为链接中使用的单个库设置 rpath

    我想要做的是配置我的 CMakeLists 文件 以便在构建我的项目时 链接器使用驻留在我的构建树中的共享库 so 的副本来链接可执行文件 但不会在中设置 rpath链接的可执行文件 以便系统必须在加载程序请求时提供该库 具体来说 我想在构
  • 健全性检查 SSH 公钥? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我已要求用户提供他们的公共 id rsa pub ssh 密钥 然后将其放入 home theiraccount ssh authorized key
  • Bash 变量:区分大小写?

    Bash shell 脚本区分大小写吗 是可变的date与DATE 是的 它区分大小写 就像 UNIX 的其余部分一样 date and DATE是两个不同的变量 makefile and Makefile是两个不同的文件 h and H是
  • 将尾部输出重定向到程序中

    我想使用 tail 作为标准输入向程序发送文本文件中的最新行 首先 我向程序回显一些每次都相同的输入 然后从输入文件发送尾部输入 该输入文件应首先通过 sed 处理 以下是我期望工作的命令行 但是当程序运行时 它只接收回显输入 而不接收尾部
  • 更改子进程中的 iostream

    现在 我正在开发一个项目 其中我需要启动一个子进程来使用 C 在 Linux 中执行一个新程序 并且我需要重定向标准输入和输出 就像在 C 中一样 它们是cin and cout 到一个文件 这意味着在子进程中 标准输入和输出都是文件 子进
  • 如何永久清除 linux/ubuntu 终端或 bash 中的所有历史记录? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 当您在 Linux 终端中使用向上键时 可以再次使用之前的命令 很棒的功能 但是 我开始使用命令中的敏感详细信息将 mysql 记录到 mysql 中
  • Linux 中不使用 C++ 的 C 异常处理

    Linux 是否提供了 C 语言的异常处理而不求助于 C 或者 实现此类异常处理的最佳方法是什么 目标是避免检查每个调用的函数的返回码 而是执行类似于 C 的线程安全且易于移植的操作 您可以通过为其编写信号处理程序来处理信号 GNU 记录的
  • Ubuntu 上的 Docker 无法连接到本地主机,但可以连接到其 IP

    我运行的是 Ubuntu 18 04 uname r 5 3 0 46 generic 我已经安装了docker docker version Docker version 19 03 8 build afacb8b7f0 我有一个简单的
  • 配置错误:无法链接到 boost_system

    我正在尝试在 Debian 上安装一个软件包 足球模拟器 2d 当我进入目录并运行时 configure 我得到以下信息 reza debian soccer rcssserver 15 0 1 configure checking for
  • 在ubuntu 18.04上安装python 2.7

    有没有办法在 Ubuntu 18 04 上安装 Python 2 7 我尝试了这个命令 但它不起作用 sudo apt install python minimal 有没有办法手动安装 我尝试使用 python 2 7 作为不支持 pyth
  • 在 Ubuntu 上运行独立的 ASP.NET Core 应用程序

    我已经发布了一个 ASP NET Core 应用程序作为针对 Ubuntu 的独立应用程序 发布似乎工作正常 我已将这些文件复制到一台漂亮的 Ubuntu 机器上 现在 我如何运行我的应用程序 我的理解是 因为它是一个独立的 NET Cor
  • 为什么分配大块内存会失败,而重新分配小块内存却不会失败

    这段代码的结果是x指向一块大小为 100GB 的内存 include
  • __libc_start_main 发生了什么?

    我真的很想理解从高级代码到可执行文件的步骤 但是遇到了一些困难 我写了一个空的int main C 文件并尝试通过以下方式破译反汇编objdump d 这是发生的事情 in start 设置对齐方式 将参数压入堆栈 调用 libc star
  • 使用正在运行的进程的共享内存收集核心转储

    核心转储仅收集进程空间 而不收集为进程间通信创建的共享内存 如何使核心转储也包含正在运行的进程的共享内存 设置核心文件过滤器 proc PID coredump filter per http man7 org linux man page
  • 如何检测文本文件中大于 n 的一系列“空洞”(孔、与模式不匹配的线)?

    Case scenario cat Status txt 1 connected 2 connected 3 connected 4 connected 5 connected 6 connected 7 disconnected 8 di

随机推荐

  • cannot drop a user that is currently connected

    删除用户时 xff0c 提示正在连接的用户无法删除 那就强制断开连接吧 xff01 错误信息 SQL span class token operator gt span drop user usr sg cascade span class
  • ModuleNotFoundError: No module named ‘setuptools_rust‘

    我在执行pip3 install webssh遇到以下的报错信息 报错信息 Traceback most recent call last File line 1 in File tmp pip build my9sai1o cryptog
  • 无限渗透实战(2)--绕过认证上校园网

    校园网大家都熟悉 一般都是开放的 xff0c 然后连接之后有个登录页面 xff0c 认证之后就可以上网了 xff0c 那么我们怎么绕过认证直接上网 首先还是开始监听周围的ap 可以看到有许多的校园网 那么我们就需要开始监听周围的校园网 xf
  • spring boot jar自定义端口启动

    java jar spring zs 1 0 jar server port span class token operator 61 span 9090
  • CentOS7中安装五笔输入法

    使用vnc远程了一点服务 xff0c 远程维护 GNOME默认自带的是ibus输入平台 默认有一个拼音输入法 但是我日常使用五笔打拼音还是不太习惯 xff0c 那就安装个五笔输入吧 相关阅读 xff1a Centos7安装和配置VNC服务器
  • CentOS7下vscode无响应

    原因分析 xff1a 我以前安装vscode是可以正常使用的啊 为什么现在不行了呢 xff1f 我怀疑会不会是新版的兼容性不行 我安装的是code 1 58 2 1626302881 el8 x86 64 rpm 后来在看到这篇文章 Cen
  • Bad owner or permissions on ~/.ssh/config

    ssh运行报错如下 xff1a Bad owner or permissions on ssh config 解决办法 span class token function chmod span 600 ssh config 参考 https
  • java.lang.NoClassDefFoundError: org/owasp/encoder/Encode

    一个老的spring boot项目中使用到了shiro xff0c 存在安全漏洞 xff0c 由于源码丢失 xff0c 只好采用解压jar升级里面shiro的jar来解决了 但是升级以后遇到报错如下 报错信息 Caused by java
  • A VNC server is already running as :1

    现象 VNC服务使用 Centos7安装和配置VNC服务器 GNOME篇 https blog csdn net lxyoucan article details 113179208 中的配置方法 一开始服务都是正常的 xff0c 在我多次
  • CentOS7+IntellJ IDEA 中文输入问题

    心血来潮在CentOS7中搭建了java开发环境 xff0c 发现在IDEA中输入中文存在问题 中文输入法只能输入1到2个中文 xff0c 后面都是英文了 xff0c 那就想办法解决一下吧 xff01 环境 我的环境信息如下 xff1a 项
  • CentOS7安装CMakev3.21.0

    yum 安装的CMake版本是 2 8 12 2 xff0c 比较旧无法使用 那就来升级一下吧 cmake span class token keyword span CMake Error at CMakeLists txt 1 span
  • CentOS7+VNC+Openbox+Fcitx

    文章目录 简介VNCopenboxFcitx 实战环境信息安装与自动配置脚本创建用户开启 VNC服务 客户端连接VNC实现远程控制假如vnc中输入法切不出来参考 简介 VNC VNC xff08 Virtual Network Comput
  • vnc学习笔记合集

    文章目录 CentOS7 43 VNC 43 Openbox 43 FcitxCentOS中VNC常用命令Centos7安装和配置VNC服务器 GNOME篇Centos7安装和配置VNC服务器 Xfce篇Centos7安装和配置VNC服务器
  • linux_pwn(3)--Chunk Extend and Overlapping&&roarctf_2019_easy_pwn

    文章目录 What is Chunk Extend and Overlappingpwn题思路例题保护机制add函数show函数delete函数edit函数 开始做题准备框架调试覆盖后面一个块的大小释放堆块free验证机制尝试修改堆块开始泄
  • 2021CentOS7系统Gnome3桌面使用Fcitx

    前言 CentOS系统大多是用于服务器上 xff0c 当作桌面系统使用的比较少数了 就算偶而使用CentOS当作桌面系统使用 xff0c Gnome3桌面自带的输入法框架ibus简单使用已经够用了 最近在CentOS7当作桌面系统当临时开发
  • CentOS7安装搜狗输入法

    搜狗拼音输入法是2006年6月由搜狐公司推出的一款汉语拼音输入法 搜狗输入法从一开始偏向于词语输入特性 xff0c 发展到后来配备云输入功能的以整句输入为优势的输入法 xff0c 是中国大陆市场主流的汉语拼音输入法 根据极光大数据的 201
  • CentOS7一键安装搜狗输入法

    自动档 span class token function sh span c span class token string 34 span class token variable span class token variable s
  • CentOS7一键开启VNC服务脚本

    最近在研究舒适 xff0c 小巧 xff0c 好用的图形界面远程控制 输入法这块卡了我很久时间 xff0c 经过一周的努力 xff0c 查资料无数 xff0c 终于打造出一套可以令自己满意的远程方案了 我的工作中接触的远程Linux服务系统
  • shell用户输入数字加法操作

    用户输入2个数字进行加法操作 span class token builtin class name echo span span class token string 34 请输入数字1 34 span span class token
  • 浅谈linux文件权限

    权限介绍 访问权限 读取 xff08 r xff09 xff1a 允许查看文件内容 xff0c 显示目录列表写入 xff08 w xff09 xff1a 允许修改文件内容 xff0c 允许在目录中新建 删除 移动文件或者子目录可执行 xff