linux下特殊的访问控制权限sticky bit, setuid, setgid

海绵宝宝的欧尼 2012-09-08

1.sticky bit

又叫stricted deletion bit

设置在目录上,用来控制目录内的文件的删除和重命名权限

通常如果用户拥有对目录的w或者x权限,就能够删除和重命名目录中的文件。但是如果一个目录设置了sticky bit,只有以下三类用户才具有删除或重命名该目录内文件的权限

1)root权限的用户(不一定是root用户)

2)目录的owner或者目录内文件的owner

3)对文件目录具有write权限的用户

代表sticky bit的权限数字是1

2.setuid和setgid

主要针对可执行文件设置

设置了setuid的文件被执行时具有文件owner的权限

设置了setgid的文件被执行时具有文件group的权限

代表setuid的权限数字是2

代表setgid的权限数字是4

不要在脚本文件上设置setuid和setguid,据说黑客有很多办法利用这个脚本上的这两个权限位

在目录上设置setgid,会导致以后在该目录下的创建文件都和该目录具有相同的groupid(正常情况下应该是和创建者具有相同的groupid)

设置这三个权限位的方法是在原有的三个权限位前再加一位

如chmod 2755 file给文件设置setuid权限

直接添加chmod u+s file给文件增加setuid权限, chmod g+s file给文件增加setguid权限

chmod o+s file给目录增加sticky bit权限

相关推荐