SetUID
1.只有在可执行的二进制程序上设定SUID权限才是有意义的
2.命令执行者要对该程序拥有执行权限
3.命令执行者在执行该程序时获得该程序文件属主的身份
4.SetUID权限只在该程序执行中有效,也就是身份改变只在程序执行中有效
例如:
passwd命令拥有SetUID权限,所以普通用户可以改自己的密码
普通用户调用passwd命令的时候,会临时使用passwd宿主的身份运行,即root用户
真正执行的时候会临时通过root身份去修改/etc/shadow文件的内容
通过ll命令查看passwd信息(用户权限标识那里x那一位成了s):
[[email protected] temp]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 30768 11月 24 2015 /usr/bin/passwd
设定SetUID
4代表SetUID
chmod 4755 文件名
chmod u+s 文件名
取消SetUID
chmod 755 文件名
chmod u-s 文件名
SetGID
针对文件:
1.只有在可执行的二进制程序上设定SGID权限才是有意义的
2.命令执行者要对该程序拥有执行权限
3.命令执行者在执行该程序时获得该程序文件属组的身份
4.SetGID权限只在该程序执行中有效,也就是组身份改变只在程序执行中有效
注:SGID对于文件的作用和SUID很像,只是这里提升的是组
针对目录:
1.普通用户必须对此目录拥有读和执行权限,才能进入此目录
2.普通用户在此目录中的有效组会编程此目录的属组
3.若普通用户对次目录具有写权限,新建的文件的默认组是这个目录的属组
设定SetGID
2代表SetGID
chmod 2755 文件名
chmod g+s 文件名
取消SetGID
chmod 755 文件名
chmod g-s 文件名
StickyBIT(粘着位)
1.粘着位目前只对目录有效
2.普通用户对该目录拥有写和执行权限
3.如果没有粘着位,因为普通用户拥有写权限,所以可以删除此目录下文件,包括其他用户建立的
4.如果有粘着位,root可以删除所有文件,普通用户只能删除自己创建的文件,不能删除别人的
5.其他用户权限标识那里x那一位成了t
例如:
tmp目录
[[email protected] temp]# ll -d /usr/tmp/
drwxrwxrwt. 2 root root 4096 10月 9 09:25 /usr/tmp/
设定粘着位
1代表粘着位
chmod 1755 目录名
chmod o+t 目录名
取消粘着位
chmod 755 目录名
chmod o-t 目录名