-
SetUID
-
SetUID的功能:
- 只有可以执行的二进制程序才能设定SUID权限
- 命令执行者要对该程序拥有x(执行)权限
- 命令执行者在执行程序时获得该程序文件属主的身份(在执行程序的过程中灵魂附体为文件的属主)
- SetUID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效
- 如果取消SetUID权限,则普通用户就不能修改自己的密码了
-
检测SetUID的脚本
-
特殊权限:
- SUID:只能针对执行程序
- SGID:既可以针对执行文件,也可以针对目录文件
- SBIT:只能针对目录
-
SetGID
-
1)针对文件的作用
-
只有可执行的二进制程序才能设置SGID权限
- 命令执行者要对该程序拥有x(执行)权限
- 命令执行在执行程序的时候,组身份升级为该程序文件的属组
- SetGID权限同样只在该程序执行过程中有效,也就是说组身份改变只在程序执行过程中有效。
- 属主权限是r,w,属组权限是r,但是其他人权限是0
-
- 当普通用户xiaocao执行locate命令时,会发生如下事情:
- /usr/bin/locate是可执行二进制程序,可以赋予SGID
- 执行用户xiaocao对/usr/bin/locate命令拥有执行权限
- 执行/usr/bin/locate命令时,组身份会升级为slocate组,而slocate组对/var/lib/mlocate/mlocate.db数据库拥有r权限,所以普通用户可以使用locate命令查询mlocate.db数据库。
- 命令结束后,xiaocao用户的组身份返回为xiaocao组
-
2)针对目录的作用
- 普通用户必须对此目录拥有r和x权限,才能进入此目录
- 普通用户在此目录中的有效组会变成此目录的属组
- 若普通用户对此目录拥有w权限时,新建的文件的默认属组是这个目录的属组
- abc文件的默认属组不再是xiaocao用户组,而变成了dtest组的属组root
-
Sticky BIT
- Sticky BIT粘着位。SBIT目前仅针对目录有效
- 粘着位目前只对目录有效
- 普通用户对该目录拥有w和x权限,即普通用户可以在此目录拥有写入权限
- 如果没有粘着位,因为普通用户拥有w权限,所以可以删除此目录下所有文件,包括其他用户建立的文件。一旦赋予了粘着位,除了root可以删除所有文件,普通用户就算拥有w权限,也只能删除自己建立的文件,但是不能删除其他用户建立的文件。
-
设定文件特殊权限
- 特殊权限表示:4代表SUID,2代表SGID,1代表SBIT
-
赋予SUID权限(u+s)
-
赋予SGID权限(g+s)
-
建立测试目录dtest,赋予SBIT(o+t)
文件特殊权限SetUID,SetGID,Sticky BIT
最新推荐文章于 2025-04-25 09:07:20 发布