linux特殊权限:setUid, setGid, 粘着位(sticky)
时间:2011-02-28 来源:xiaokaizi
(1)目录的X权限(执行).
文件的可执行权限很简单,也就是可否执行它的意思,但目录的执行权限又代表什么意思呢?
当然不可能是要执行这个目录了,其实这个执行权限如果用在目录上时,它不再
代表执行的意思了,而是代表"搜索"权限。当你要访问/etc/httpd.conf文件时,您
必须拥有对目录etc的X(即搜索)权限,否则即便你对目
录/etc和文件httpd.conf拥有读取权限,也是无法访问httpd.conf这个文件的.
(2)setUid, setGid
即:设置-用户ID位,设置-组ID位。
当一个程序一旦设置了该标记以后,运行该程序的进程将拥有该程序所有
者同样的权限,比如你的某个程序是由root所有,又设置了SetUid位,那即便是一个
普通用户运行这个程序,但该程序的身份一样是超级用户的身份了,可以访问所有只能由root用户访问的资源.
setUid命令用法:
提升使用者的权限,普通用户可以执行改命令,使自己升级为root
chmod 4755 your_program
setGid命令用法:
与setUid类似,使得使用者在执行该文件时,都绑定了文件所有组的权限,单独setGid的文件非常少用,通常都是即setUid又setGid.
chmod 2755 your_program
setUid and setGid命令用法:
通常不是用来提升权限的,而是为了绑定某个特殊用户及其组的特殊权限.
chmod 6755 your_program
(3)粘着位(sticky)
eg:
chmod 777 abc
chmod +t abc
等价于
chmod 1777 abc
在以前旧的系统当中,如果一个程序文件一旦设置了粘着位,那么当该程序中止
的时候他的所有指令段将被保
存到系统的交换分区当中,再次运行时可以更快的调入系统.不过现在的操作系统
已经不再使用这种功能了.但这
并不表示这功能已经完全被废弃.当一个目录设置为粘着位时,它将发挥特殊的作
用,即当一个目录被设置为"粘着位"(用chmod a+t),则该目录下的文件只能由
一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除
也就是说,即便该目录是任何人都可以写,但也只有文件的属主才可以删除文件