Linux 文件权限管理与身份切换全解析
1. 文件权限符号表示法与特殊权限
1.1 文件权限符号表示法
文件权限的设置可以使用符号表示法,以下是一些常见符号表示法及其含义:
| 符号表示法 | 含义 |
| — | — |
| o-rw | 移除除文件所有者和组所有者之外的用户的读写权限 |
| go=rw | 设置组所有者和其他用户具有读写权限。如果之前组所有者或其他用户有执行权限,则移除该权限 |
| u+x,go=rx | 为文件所有者添加执行权限,并设置组和其他用户具有读写和执行权限。多个设置可以用逗号分隔 |
1.2 特殊权限
除了常见的读写执行权限,还有一些特殊权限:
- setuid 位(八进制 4000) :应用于可执行文件时,将有效用户 ID 从实际运行程序的用户 ID 设置为程序所有者的用户 ID。例如普通用户运行 setuid root 的程序时,程序将以超级用户的权限运行。
- setgid 位(八进制 2000) :将有效组 ID 从用户的实际组 ID 更改为文件所有者的组 ID。如果在目录上设置了 setgid 位,该目录中新创建的文件将具有该目录的组所有权。
- 粘性位(八进制 1000) :Linux 系统中,应用于目录时,可防止用户删除或重命名文件,除非用户是目录所有者、文件所有者或超级用户。
使用 chmod 命令的符号表示法设置特殊权限的示例: