set_uid:
图中圈里 s 表示set_uid
权限setuid: 设置使文件在执行阶段具有文件所有者的权限. 典型的文件是 /usr/bin/passwd. 如果一般用户执行该文件, 则在执行过程中, 该文件可以获得root权限, 从而可以更改用户的密码.
密码文件:
给命令添加set_uid权限
然后普通用户就可以ls了
取消
S权限和s权限之间差了个x权限:如图
情景设定:root用户给ls命令添加s权限,使普通用户aming能够以root的身份执行ls
1.查看ls权限,发现没有s
2. 给ls添加s权限
3.换普通用户aming 可以查看root文件了
4.去掉root权限
5.普通用户查看不了
set_gid:
setgid: 该权限只对目录有效. 目录被设置该位后, 任何用户在此目录下创建的文件都具有和该目录所属的组相同的组.
给ls命令添加set_gid权限:
添加完成后普通用户拥有所属组的权限
文件设置了set_gid后,(和set_gid类似)临时用户拥有用户组的权限
目录设置了set_gid后,在改目录下面创建的子目录或者子文件,所属组与父目录保持一致
例如:创建了234目录,给234目录添加set_gid权限,将234目录所属组改成user1 在234目录下创建的目录或者文件所属组都是user1
sticky_bit:
该位可以理解为防删除位. 一个文件是否可以被某用户删除, 主要取决于该文件所属的组是否对该用户具有写权限. 如果没有写权限, 则这个目录下的所有文件都不能被删除, 同时也不能添加新的文件. 如果希望用户能够添加文件但同时不能删除文件, 则可以对文件使用sticky bit位. 设置该位后, 就算用户对目录具有写权限, 也不能删除该文件.
t表示/tmp目录有sticky_bit权限 普通用户不能删除/tmp下面的文件(root除外)
给 /tmp 添加t权限: chmod o+t /tmp
添加完成后可以防删除: