| | r | w | x | | | -------- | ---- | ---- | ---- | ------ | | u | 4 | 2 | 1 | 7(rwx) | | g | 4 | 2 | 1 | 7(rwx) | | o | 4 | 2 | 1 | 7(rwx) | | 特殊权限 | 4 | 2 | 1 | 7(SST) | ### SUID(Set User ID) - **作用**:当一个可执行文件设置了 SUID 权限,用户执行该文件时,会临时获得文件所有者的权限。 - **典型应用**:`passwd` 命令,普通用户执行它时能临时获得 root 权限来修改密码。 - **设置方法**:`chmod u+s 文件名`(字母方式)或 `chmod 4755 文件名`(数字方式,4 代表 SUID) - **取消方法**:`chmod u-s 文件名` ### SGID(Set Group ID) - **作用**: - 对文件:执行文件时临时获得文件所属组的权限 - 对目录:在该目录下创建的新文件会继承目录的所属组 - **典型应用**:用于团队共享目录,确保新创建的文件能被团队所有成员访问 - **设置方法**:`chmod g+s 文件名/目录名` 或 `chmod 2755 文件名/目录名`(2 代表 SGID) - **取消方法**:`chmod g-s 文件名/目录名` ### Sticky(粘滞位) - **作用**:只对目录有效,设置后,只有文件所有者、目录所有者或 root 才能删除该目录下的文件 - **典型应用**:`/tmp` 目录,允许所有用户创建文件,但不能删除他人文件 - **设置方法**:`chmod o+t 目录名` 或 `chmod 1777 目录名`(1 代表 Sticky) - **取消方法**:`chmod o-t 目录名` ### 权限表示 在 `ls -l` 输出中: - SUID 显示为 `s`(替代所有者执行权限 `x`),若无执行权限则显示 `S` - SGID 显示为 `s`(替代组执行权限 `x`),若无执行权限则显示 `S` - Sticky 显示为 `t`(替代其他用户执行权限 `x`),若无执行权限则显示 `T` 例如:`-rwsr-xr-x` 表示文件设置了 SUID,`drwxr-sr-x` 表示目录设置了 SGID,`drwxrwxrwt` 表示目录设置了 Sticky 位。