Linux 文件权限
在 Linux 中,有三种不同类型的用户可对文件或目录进行访问:
- 文件所有者
- 同一群组用户
- 其他用户
有三种文件权限类型:
- r:读取权限
- w:写入权限
- x:执行权限
我们可以为三种不同类别的用户分配不同的文件访问权限,指定允许哪些用户读取文件、写入文件或执行文件。
可以使用 ls 命令查看文件权限:
ls -l test.sh
-rwxr-xr-x. 1 root root 2519 May 19 10:13 test.sh
我们可以看到类似 -rwxr-xr-x 的信息,一共有 10 位:
-rwxr-xr-x
||||||||||
||||||||||
||||||||||
12345678910
- 第一个,- 代表的是文件类型,可以是常规文件 -、目录 d、符号链接 l 或其他类型的文件
- 往后三个,rwx 代表的是所有者的权限
- 再往后三个,r-x 代表的是同一群组的权限
- 最后三个,r-x 代表的是其他用户的权限
使用 chmod 修改文件目录权限
chmod 命令用于修改文件目录的访问权限。
语法格式
chmod [who] [+|-|=] [mode] 文件名 复制代码
mode 表示访问的模式状态,通常使用几个特定的符号来设置权限的状态。
设置用户的状态 | 运算符 | 权限 |
---|---|---|
u | + | r |
g | - | w |
o | = | x |
a |
权限状态可以分成 3 个部分。
- 设置用户的状态:
- u:表示所有者(owner)的权限
- g:表示群组(group)的权限
- o:表示其他用户(other)的权限
- a:表示所有用户的权限
- 运算符:
- +:表示在现有权限的基础上增加权限
- -:表示在现有权限的基础上移除权限
- =:表示将权限设置为后面的值
- 权限:
- r:读取权限
- w:写入权限
- x:执行权限
例如,为 test 文件添加所有者和同组用户的可执行权限:
chmod ug+x test
除此之外,chmod 命令还支持用数字来表示要修改的文件权限,可以使用一组 3 位数的数字来表示文件目录上的权限:
- 第 1 个数字表示所有者(owner)的权限,即 u
- 第 2 个数字表示群组(group)的权限,即 g
- 第 3 个数字表示其他用户(other)的权限,即 o
每一位数字都是以下权限状态的数字( 4、2、1、0)相加的总和:
- 4:读取权限
- 2:写入权限
- 1:执行权限
- 0:没有相应的权限
把以上的数字相加就可以得到一个在 0-7 之间的数字,而这组数字就是表示所有者、同群组和其他用户权限状态。
例如,要授予 test 文件所有者的读取,写入和执行权限,授予同群组的读取和执行权限,而仅授予所有其他用户的读取权限,可以执行以下操作:
- 所有者:rwx = 4 + 2 + 1 = 7
- 群组:rx = 4 + 0 + 1 = 5
- 其他:rx = 4 + 0 + 0 = 4
chmod -R 754 test
总结
chmod 命令可以更改文件和目录的访问权限,可以使用符号、数字两种模式。
作者:tigeriaf
链接:https://juejin.cn/post/7021014110334631949
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。