参考鸟哥私房菜-linux文件与目录管理
SUID
- suid权限仅对二进制程序有效。
- 执行者对于该程序需要具有x的可执行权限。
- 本权限仅在执行的过程中有效。
执行过程中具有该程序所有者的权限。
可以看到对于/usr/bin/passwd文件来说dudengke用户具有x权限,表示dudengke用户能够执行passwd。然而,passwd的拥有者是root这个帐号。dudengke用户在执行过程中,会“暂时”获得root的权限。
另外SUID仅可用在二进制程序上,不能够用在shell script上面。!!
SGID
当s标志在文件所有者的x项目为SUID,那s在用户组的x时,则成为SGID。
SGID对于文件:
- SGID对二进制程序有用。
- 程序执行者对于该程序来说,需具备x的权限。
- 执行者在执行的过程中将会获得该程序用户组的支持。
例如:
用户dudengke去执行locate时,dudengke将会取得slocate用户组的支持,因此就能够读取mlocate.db文件。
SGID对于目录:
- 用户对于此目录具有r和x权限时,该用户能够进入此目录。
- 用户在此目录下的有效用户组将会变成目录的用户组。
- 若用户在此目录下具有w的权限,则用户所创建的新文件的用户组与此目录的用户组相同。
Sticky Bit
这个Sticky Bit目前只针对目录有效,对于文件没有效果。SBIT对于目录的作用是:
- 当用户对于此目录具有w,x权限,即具有写入的权限时;
当用户在该目录下创建文件或目录时,仅有自己与root才有权力删除该文件。
/tmp目录具有t权限,则意味着所有用户都可以在这新建、删除和移动。而无法删除他人的文件。