Linux 文件权限管理 

Last Update: 2023-05-18

目录

查看文件权限

执行 ls -l 查看目录下所有子目录和文件的权限及属性。输出结果中每列的含义如下:

  1. 第 1 部分: 文件类型和权限。
  2. 第 2 部分: i 节点,硬链接数。
  3. 第 3 部分: 属主,文件所有者。
  4. 第 4 部分: 属组,所有者所在的用户组。
  5. 第 5 部分: 文件的大小。
  6. 第 6 部分: mtime,即最后一次修改时间。
  7. 第 7 部分: 文件或者目录名。

首先,第 1 部分的第 1 个字母表示文件类型,主要有下面几种:

  1. - 普通文件;
  2. d 目录;
  3. l 链接文件;
  4. b 块设备文件,比如硬盘的存储设备等;
  5. c 字符设备文件,比如键盘;
  6. s 套接字文件,跟网络程序有关;
  7. p 管道文件。

之后 9 个字母中,每 3 个一组,分别表示文件所有者 u 权限,同组用户 g 权限和其他用户 o 权限。

属主可以用 a 表示 all users ,即这个文件属于所有用户。

每 3 个字母的组中,各字母依次分别为读 r ,写 w 和执行 x 权限。

权限位出现 - 表示无此权限。例如 rw- 为可读,可写,不可执行。

用 chmod 更改权限

chmod (-R) <pattern> <file-or-dir-name> 命令用来修改权限。

-R 参数为是否为目标文件夹中的所有子项执行此命令 (更改文件夹所有子项的权限)。

主要有两种方法。

数字法

这样的三个数字之可以表示任何一种权限组合。

常用权限组合的有:

比如:

参数法

可以操控的颗粒度很细。

基本格式是:

chmod (u|g|o|a)(+|-|=)(r|w|x|s|t) <file-or-dir-name>

例子:

特殊权限

SUID 对应数字 4:

SGID 对应数字 2:

SBIT 对应数字 1:

对于文件或目录的属主与属组权限部分:

对于文件或目录 others 的权限部分: