Linux文件权限

文章目录

  • 文件权限符
  • 默认权限
  • 权限设置

文件权限符

ls命令可以查看Linux系统文件、目录和设备的权限,如

$ ls -l test.sh 
-rwxrwxrwx 1 root root 23 6月  19 16:46 test.sh

对于输出结果第一个字段,描述文件和目录权限的编码。

该字段第一个字符表示对象类型:

字符 类型
- 文件
d 目录
l 链接
c 字符型设备
b 块设备
n 网络设备

之后的3组三字符编码,每组定义3中访问权限

字符 权限类型
r 对象可读
w 对象可写
x 对象可执行

若没有某种权限,在该权限位会出现单破折线。这3组权限分别对应对象的3个安全级别:

  • 对象属主
  • 对象属组
  • 系统其他用户

如下图所示:
Linux文件权限_第1张图片

默认权限

umask 命令可以显示和设置默认权限。

$ umask
0022

第一位代表了一项特别的安全特性,叫作粘着位(sticky bit)。

后面的3位表示文件或目录对应的 umask 八进制值。要理解 umask 是怎么工作的,得先理解八进制模式的安全性设置。

下表为Linux文件权限码

权限 二进制值 八进制值 描述
- - - 000 0 没有任何权限
- - x 001 1 只有执行权限
- w - 010 2 只有写入权限
- wx 011 3 有写入和执行权限
r- - 100 4 只有读权限
r-x 101 5 有读和执行权限
rw- 110 6 有读和写权限
rwx 111 7 有全部权限

权限设置

chmod命令用来改变文件和目录的安全性设置。该命令的格式如下:

chmod options mode file

mode参数可以使用八进制模式或符号模式进行安全性设置。

八进制模式设置非常直观,直接用期望赋予文件的标准3位八进制权限码即可。

下面是在符号模式下指定权限的格式。

[ugoa...][[+-=][rwxXstugo...]

第一组字符定义了权限作用的对象:

  • u 代表用户
  • g 代表组
  • o 代表其他
  • a 代表上述所有

下一步,后面跟着的符号表示你是想在现有权限基础上增加权限(+),还是在现有权限基础上移除权限(-),或是将权限设置成后面的值(=)。

最后,第三个符号代表作用到设置上的权限。

你可能感兴趣的:(Linux)