linux下特殊的访问控制权限sticky bit, setuid, setgid
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权限