Linux特殊权限SUID、SGID、SBIT

本文详细介绍了Linux中的SUID、SGID和SBIT权限。SUID允许普通用户临时获得文件所有者的权限,如passwd命令;SGID使执行者暂时拥有文件所属组的权限,并能影响子文件的组属性;SBIT用于防止非文件所有者删除文件,如在/tmp目录的应用。这些权限在系统安全和权限管理中起到关键作用。

一、SUID(Set owner User ID up on execution)

1.1.作用:

当用户在执行具有SUID权限的文件时,会临时变为该文件的属主的角色

1.2.操作对象:

二进制可执行文件

1.3.设置命令

chmod u+s filename	或者
chmod 4644 filename

1.4.示例:

普通用户可以通过passwd命令修改自己的密码,而passwd命令实际会去修改/etc/shadow文件,但/etc/shadow文件的权限

是000,只有root能够修改它,普通用户不能直接修改,神奇的是通过passwd命令就可以间接地修改,其中的关键就在于SUID权限
在这里插入图片描述

passwd命令的权限为
在这里插入图片描述

/usr/bin/passwd的属主权限为rws,s表示同时设置了SUID权限和x权限,取消s权限后
在这里插入图片描述
可以发现它是有x权限的,也只有给具有x权限的文件设置SUID权限才有意义

去掉SUID权限后,普通用户修改密码就不能成功

在这里插入图片描述

总结:当普通用户执行passwd命令时,会临时成为root,因此能够修改/etc/shadow文件,从而可以修改密码

1.5.特别注意:为shell脚本设置SUID是无效的

参考文章:https://blog.youkuaiyun.com/ack92710/article/details/101691245

二、SGID

2.1.作用:

当用户在执行具有SGID权限的文件时,会临时变为该文件的所属组的角色

在具有SGID权限的目录下创建的文件和目录会继承父目录的所属组

2.2.操作对象:

文件和目录

2.3.设置命令

chmod g+s filename	或者
chmod 2755 dirname

2.4.示例:

针对文件设置SGID权限的场景较少,这里不再测试,只测试对目录的设置

用root分别创建两个目录dir1和dir2,并设置属主为alex,所属组为bob,给dir2设置SGID权限

mkdir dir{1,2}
chown alex.bob dir1
chown alex.bob dir2
chmod g+s dir2/

在dir1和dir2分别创建目录test1,查看test1的权限

在dir1和dir2分别创建文件f1.txt,查看f1.txt的权限

总结:在设置了SGID权限的dir2目录下创建的文件和目录会继承dir2所属组的权限,也就是会把所属组设置为bob,并且目录也会设置SGID权限

三、SBIT(粘滞位)

3.1.作用:

阻止非文件的所有者删除文件

3.2.操作对象:

目录

3.3.设置命令

chmod o+t filename	或者
chmod 1757 dirname

3.4.示例:

/tmp目录默认就有t权限
在这里插入图片描述

用alex用户在/tmp下创建t1.txt文件,并给其它人添加w权限

切换到bob用户,删除t1.txt

提示操作不允许,这是因为该文件被SBIT权限保护了,只能由其创建者进行删除

去掉/tmp目录的t权限,再用bob用户删除t1.txt,可以删除

总结:SBIT权限可以保护自己创建的文件不被他人删除

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值