SUID 使程序运行时获取文件所有者权限,用于如 passwd 等需提权场景;SGID 对文件赋予组权限,对目录令新文件 继承 组属性,便于协作;Sticky Bit 确保公共目录中用户仅能删除自身文件,常用于 /tmp。三者分别用 chmod u+s、g+s、+ t 设置,ls - l 中以 s、s、t 表示,数字法为 4、2、1,合理配置可平衡安全与功能需求。

linux中的特殊权限位包括 SUID、SGID 和 Sticky Bit,它们用于实现特定的访问控制功能。正确管理这些权限可以提升系统安全性和协作效率。
SUID(Set User ID)
当一个可执行文件设置了 SUID 位,用户运行该程序时会临时获得文件所有者的权限。
– 通常用于需要以更高权限运行但又不能开放 root 权限的场景,例如 passwd 命令。– 使用 chmod u+s filename 设置 SUID 位。– 查看时,属主权限的 x 位置显示为 s(小写),若原无执行权限则显示 S(大写)。– 不必要的 SUID 程序应移除权限,避免安全隐患。
SGID(Set Group ID)
对于文件:运行时获取文件所属组的权限;对于目录:新创建的文件继承目录的组。
– 目录设置 SGID 后,所有在其中新建的文件都会属于目录的组,便于团队协作。– 使用 chmod g+s directory_name 设置 SGID。– 查看时,属组权限的 x 位置显示 g 为 s 或 S。– 合理使用可简化多用户环境下的权限管理。
Sticky Bit(粘滞位)
主要应用于公共目录,确保用户只能删除自己创建的文件。
– 典型应用是 /tmp 目录,所有人都能写入,但不能删除他人文件。– 使用 chmod +t directory_name 设置。– 查看时,其他用户权限的 x 位置显示为 t 或 T。– 设置后即使目录有写权限,也不能随意删除他人文件。
查看特殊权限时,ls - l 输出中三段权限后的字符对应 SUID(s/S)、SGID(s/S)、Sticky(t/T)。数字表示法中,SUID=4,SGID=2,Sticky=1,如 chmod 4755 file 表示设置 SUID 的 755 权限。
基本上就这些。合理配置特殊权限位,既能满足功能需求,又能控制风险。


