1、SetUID(危险)
SetUID的功能(缺一不可)
- 只有可以执行的二进制程序才能设定SUID权限
- 命令执行者要对该程序拥有x(执行)权限
- 命令执行者在执行程序时获得该程序文件属主的身份(在执行程序的过程中灵魂附体为文件的属主)
- SetUID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效。
举例
-
passwd命令拥有SetUID权限,所以普通用户可以修改自己的密码。
# ll /usr/bin/passwd -rwsr-xr-x.1 root root 25980 2月 22 2012 /usr/bin/passwd
注:其中所有者权限中出现了一个r,是属于灵魂附体,命令执行过程中变为root。
-
cat命令没有SetUID权限,所以普通用户不能查看/etc/shadow文件内容。
# ll /bin/cat -rwxr-xr-x 1 root root 47976 6月 22 2012 /bin/cat
设定SetUID的方法
4代表SUID
- chmod 4755 文件名
- chmod u+s 文件名
取消SetUID的方法
- chmod 755 方法
- chmod u-s 文件名
危险的SetUID
- 关键目录应严格控制写权限。比如"/"、"/usr"等。
- 用户密码设置要严格遵守密码三原则
- 对系统中默认应该具有SetUID权限的文件作一列表,定时检查没有这之外的文件被设置了SetUID权限。
2、SetGID
SetGID针对文件的作用
- 只有可执行的二进制程序才能设置SGID权限。
- 命令执行者要对程序拥有x(执行)权限。
- 命令执行在执行程序的时候,组身份升级为该程序文件的属组。
- SetGID权限同样只在该程序执行过程中有效,也就是说组身份改变只在程序执行过程中有效。
设定SetGID
2代表SUID
- chmod 2755 文件名
- chmod g+s 文件名
取消SetGID
- chmod 755 文件名
- chmod g-s 文件名
3、Sticky BIT
SBIT粘着位作用
- 粘着位目前只对目录有效。
- 普通用户对该目录拥有w和x权限,即普通用户可以在此目录拥有写入权限。
- 如果没有粘着位,因为普通用户拥有w权限,所以可以删除此目录下所有文件,包括其他用户建立的文件。一但赋予了粘着位,除了root可以删除所有文件,普通用户就算拥有w权限,也只能删除自己建立的文件,但是不能删除其他用户建立的文件。
设置与取消粘着位
设置粘着位:
- chmod 1755 目录名
- chmod o+t 目录名
取消粘着位:
- chmod 777 目录名
- chmod o-t 目录名
总结
数字 | 设置 |
---|---|
4 | SetUID |
2 | SetGID |
1 | Sticky BIT |