文件特殊权限
(一)SetUid权限
(1)setuid介绍
- 只有可以执行的二进制文件才能设置setuid权限
- 命令执行者对该文件要有x 执行权限
- 命令执行者执行该文件程序过程中,自动临时变成该文件的所属者
- setuid权限只在执行过程中有效
(2)运用实例
普通用户可以修改密码
(3)设定和取消setuid权限
chmod 4755 file #4代表setuid权限
chmod u+s file #s代表setuid
chmod 755 file #取消setuid权限
chmod u-s file
(4)危险的setuid
当普通用户对原所属主是root的文件,拥有setuid权限,那么在执行该文件时,普通用户就变成了root,从而能修改各种系统文件,这是不安全的。
- 对 “/”,“/usr”等目录严格控制写权限
- 用户密码严格遵守三原则
- 对系统中默认拥有setuid权限的文件,作一个列表。定期检查除此之外有没有其他,不小心被设置setuid权限的文件
(二) SetGid权限
(1)setgid介绍
和setuid很相似,不过setgid既可以对文件也可以对目录。
1.1 当setgid针对文件时
- 只有可以执行的二进制文件才能设置setgid权限
- 命令执行者对该文件要有x 执行权限
- 命令执行者执行该文件程序过程中,自动临时变成该文件的所属组
- setgid权限只在执行过程中有效
1.2 当setgid针对目录时
- 普通用户对目录有xr权限
- 普通用户在该目录中创建文件,文件的的所属组是之前默认的所属组,而不是该普通用户
(2)setgid设定和取消
chmod 2755 file/dir # 2代表setgid权限
chmod g+s
chmod 755 file/dir
chmod g-s
(3)系统用例
当普通用户,使用locate命令去查找时,变成该命令所属组slocate,然后以该身份去读molcate.db文件
/usr/bin/locate #该命令的默认拥有setgid权限
/var/lib/mlocate/mlocate.db
(三) sticky BIT权限
(1) sbit黏着位作用
- 只针对目录
- 普通用户需要对该目录有wx权限
- 如果一个目录设置了该权限,普通用户只能删除该目录下自己建立的文件,其他人创建的文件不能删除。
(2)sbit设定和取消
chmod 1755 file #代表sbit
chmod o+t
chmod 755 file
chmod o-t