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权限。
基本上就这些。合理配置特殊权限位,既能满足功能需求,又能控制风险。


