Linux文件的特殊权限(SUID|SGID|SBIT)

一、SUID

介绍:SUID是一种对二进制程序进行设置的特殊权限,能够让二进制程序的执行者临时拥有所有者的权限(仅对拥有执行权限的二进制程序有效)。

(一)语法格式

chmod u+s 文件名(设置SUID权限)

chmod u-s 文件名(取消SUID权限)

#文件属主的x权限,用s代替.表示被设置了SUID

#如果属主位没有x权限,会显示为大写S,表示有故障(权限无效) 

(二)普通用户quintin对vim是有执行权限的,而对/etc/passwd则没有编辑权限.

(三)通常情况下quintin启动vim后,系统会创建一个以当前用户quintin为属主属组的vim进程,此时vim进程的属主属组为quintin:quintin,由于无论是属主还是属组都不具有对/etc/passwd的编辑权限,所以这个vim进程无权编辑/etc/passwd.

(四)而给/usr/bin/vim设置了SUID之后,quintin或任何用户启动vim程序时,系统创建的vim进程的属主则是取了/usr/bin/vim这个程序文件自身的属主root,所以此时vim进程的属主属组为root:quintin. 系统检查发现正好匹配了/etc/passwd的属主,于是放行vim进程

(五)案例

1、使用SUID修改root用户的文件

(1)复制/etc/passwd 为passwd1,切换到普通用户进行编辑,可以发现无法保存,没有写入权限

(2)修改vim二进制文件,使普通用户在在编辑时拥有所属人的权限

(3)切换到普通用户,并编辑passwd1文件,并保存(提示只读不用管,强制保存即可。)

(4)取消对vim的SUID,在次尝试能否修改。

2、练习:使用SUID实现touch命令创建文件,所属人为root。(自己练习)

二、SGID

介绍:SGID特殊权限有两种应用场景:

(一)语法格式

1、chmod g+s 目录或文件(设置SGID权限)

2、chmod g-s 目录或文件(取消SGID权限)

3、#文件属组的x权限,用s代替.表示被设置了SGID

4、#如果属组位没有x权限,会显示为大写S,表示有故障(权限无效)

(二)当对二进制程序进行设置时,能够让执行者临时获取文件所属组的权限

1、使用SUID创建文件的效果,使用普通用户runoob创建文件asd时,所属人成为了root。

2、使用SGID创建文件的效果,使用普通用户runoob创建文件asd时,所属组成为了root。

(三)当对目录进行设置时,则是让目录内新创建的文件自动继承该目录原有用户组的名称

1、新建两个目录,分别分配给两个不同的用户组,用于测试。

2、对这两个目录赋予777、SGID权限

3、新建test01用户,并使用test01用户登录,进入两个目录创建文件,查看文件所属组是否与目录相同

(效果1)

(效果2)

三、SBIT

介绍:SBIT特殊权限位可确保用户只能删除自己的文件,而不能删除其他用户的文件。换句话说,当对某个目录设置了SBIT粘滞位权限后,那么该目录中的文件就只能被其所有者执行删除操作了。

(一)语法格式

1、chmod o+t 目录(设置SBIT权限)

2、chmod o-t 目录(取消SBIT权限)

3、#文件其他人的x权限,用t代替.表示被设置了SBIT

4、#如果其他人位没有x权限,会显示为大写T,表示有故障(权限无效) 

(二)SBIT通常设置在目录中,对于一个多人可写的目录,如果设置了SBIT,则每个用户仅能删除和改名自己的文件或目录;只能作用在目录上.普通文件设置无意义,且会被linux内核忽略

(三)案例:各个用户只能删除自己的文件

1、先赋予/tmp目录777权限,即所属人、所属组、其他人可读可写可执行。

2、测试普通用户能否删除root用户的文件,结论,可以删除。

3、配置SBIT权限,请使用root用户进行配置

4、切换到普通用户,再次尝试删除root用户文件,提示权限不足

5、切换到其他用户,尝试删除test01用户的文件,可以看到也无法删除

6、使用test01进行删除,可以删除。

  • 45
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值