关于setuid,setgid和sticky位的理解

来源:岁月联盟 编辑:exp 时间:2011-09-08

 设置setuid和setgid的方法分别是chmod 4755 program和chmod 2755 directory。理论上来说所有启动一个程序所引发的进程都应该属于该文件的使用者,所以仅仅设置chmod o+x program是不够的,因为它有可能会调用其他的程序,而设置setuid的作用就在这个地方。
       以su命令为例,若仅仅设置program的权限为751,该命令还是不能正确的执行,当设置好setuid之后,非文件所有者才可以使用该命令。
      setgid对于可执行文件的作用类似于setuid,setgid还有一个特殊的用处就是在被设置setgid的目录下新建文件,被新建的文件所属的组是该目录所属的组。
      sticky位已经失去了它对可执行文件的作用,现在的sticky位的作用仅限于目录。被设置了sticky位的目录,在目录下可以新建文件,修改文件,而只用文件的所有者才能删除文件或修改文件名。

作者“人性的优点”