linux 的特殊权限set_uid set_gid sticky_bit

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

添加完成后可以防删除:

 

原文地址:https://www.cnblogs.com/pta188/p/8670648.html