AI智能
改变未来

特殊权限(SUID、SGID、SBIT)

Set UID
当s这个标志出现在文件所有者的x权限上时,此时就被称为Set UID,简称为SUID。
作用:
1、SUID仅对二进制程序有效
2、执行者对于该程序需要具有x的可执行权限
3、本权限仅在执行该程序的过程中有效
4、执行者将具有该程序拥有者的权限

SUID的目的是:让本来没有相应权限的用户运行这个程序是可以访问他没有权限访问的资源。

具体实例演示:以/bin/passwd为例
1、首先创建测试用户chenyi1

2、在/tmp目录下创建passwd测试文件

3、切换到测试用户chenyi1
4、在目录/tmp/下执行passwd命令修改密码,发现没有改密码的权限

5、此时我们需要切换到root用户下给passwd加上SUID权限,并查看权限

6、切换到测试用户chenyi1下,在/tmp/下执行passwd命令,发现我们可以修改密码了

注:
SUID只能运行在二进制程序上,不能用在脚本上,也不能放在目录上放上也是无效的。

展示位置:属主的执行权限为,如果属主原本有执行权限显示为小写s,否则为大写 S

SGID
如果s这个标志出现在文件所属用户组d位置上时就是SGID
作用:获得该程序所属用户组的权限
注意:
1、SGID对二进制程序有用
2、程序执行者对于该程序来说需要具备x权限
3、SGID主要用在目录上

展示位置:属组的执行权位上如果属主原本有执行权限显示为小写s,否则为大写S
如果用户在此目录下具有w权限的话,若使用这在此目录下建立新文件,则新文件的群组与此目录的群组相同
具体实例演示:
1、在root用户的/tmp/目录下建立测试目录wang并赋予一定的权限,例如757权限,并查看权限

2、切到测试用户chenyi1下的/tmp/wang目录下创立一个测试文件xin2和测试目录yi1并查看其权限我们发现文件和目录的权限都是创建者本身
3、然后我们切到root用户下给目录wang/加上SGID权限并查看

4、切到测试用户wang/目录下创建子目录yi2和子文件xin1查看其权限我们发现yi2和xin1的属组变成root了也就是上层目录wang/这个目录的所属用户组

4、还原权限的步骤
SBIT
针对others来设置的了,和上面两个英语只是功能不同。SBIT只针对目录有效
作用:当用户再该目录下建立文件或目录时,仅有自己和root才有权力删除。
SBIT对文件不起作用
展示位置:其他用户的执行权限位,执行权限显示为小写t,否则为大写T。
实例演示:
1、先将测试文件wang/下的内容清除,并建立两个测试用户分别是chenyi1,chenyi2

2、我们切换为测试用户chenyi1,然后在里面创建文件dai

3、切换到另一个测试用户查看测试文件dai的权限,此时测试用户chenyi2是其他人权限,对测试文件有只读权限,但测试文件所在目录对其他人是全部权限,所有我们有权删除测试文件
4、然后我们切换到root用户给测试目录wang/加上SBIT权限
5、切换到测试用户chenyi1,在测试目录下建立测试文件dai,查看文件权限和第一次创建时是一样的

6、我们切换到测试用户chenyi2,看看能不能再次删除这个文件,发现我们没有权限删除,不允许的操作
7、此时只有文件创建者和root用户才能删除
8、还原权限方法
在root用户下还原目录权限

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » 特殊权限(SUID、SGID、SBIT)