文件的特殊权限:SUID,SGID,SBIT---linux学习笔记(3)

我们都知道文件权限有rwx这三种,但是我们如果试着这么做:

这里写图片描述

好像还有其他权限(s,t)?这就是我们要说的文件特殊权限。


SetUID

定义:当s标志出现文件所有者(user)的x权限上时,具有这种权限的文件会在其执行时,使调用者暂时获得该文件拥有者的权限,如上述passwd的rwsr-xr-x,我们称为SetUID,简称SUID的特殊权限。

它有以下几点限制和功能:

1. SUID只对二进制文件有效
2. 调用者对该文件有执行权(x)
3. 在执行过程中,调用者会暂时获得该文件的所有者权限
4. 该权限只在程序执行的过程中有效

具体我们以鸟哥私房菜的一个例子来理解:

这里写图片描述

注意到passwd这个文件权限,作为普通用户的我们是others,对passwd是具有x权限的表示我们执行passwd;passwd的拥有者(user)为root;当我们执行passwd时候,我们会短暂获得root权限,因此可以写入shadow这个文件中(存储密码的地方)

另外,SUID仅可以用于二进制程序上,不能用在shell script上,它对目录无效。

SetGID

与SUID类似,当s出现在用户组(group)时候成为SetGID,简称SGID。但是与SUID不同的是它可以针对文件或者目录设置

比如说:

这里写图片描述

我们看到,s出现用户组x权限处。

它有以下功能:

  1. 对二进制程序有用
  2. 执行者需要具备x权限
  3. 执行者在执行的过程中会获得用户组的支持

当SGID作用于普通文件时,和SUID类似,在执行该文件时,用户将获得该文件所属组的权限。当SGID作用于目录时,意义就非常重大了。当用户对某一目录有w和x权限时,该用户就可以在该目录下建立文件,如果该目录用SGID修饰,则该用户在这个目录下建立的文件都是属于这个目录所属的组。

StickyBit

粘滞位(Stickybit),又称粘着位,最常见的用法在目录上设置粘滞位,也只能针对⽬录设置,对于⽂件⽆效

它对目录的作用是:

  • 当用户对目录有w,x权限即有写入权限
  • 当用户在该目录下创建文件或者目录时候,仅自己与root才能删除该文件

一般为目录设置粘滞位是为了防止普通用户删除或移动其他用户的文件,比如/tmp目录。

我们知道tmp作为Linux系统的临时⽂件夹,权限为“rwxrwxrwx”,即允许任意⽤户、任意程序在该⽬录中进⾏创建、删除、移动⽂件或⼦⽬录等操作。
然⽽试想⼀下,若任意⼀个普通⽤户都能够删除系统服务运⾏中使⽤的临时⽂件,将造成什么结果?

粘滞位权限便是针对此种情况设置,当⽬录被设置了粘滞位权限以后,即便⽤户对该⽬录有写⼊权限,也不能删除该⽬录中其他⽤户的⽂件数据,⽽是只有该⽂件的所有者和root⽤户才有权将其删除。设置了粘滞位之后,正好可以保持⼀种动态的平衡:允许各⽤户在⽬录中任意写⼊、删除数据,但是禁⽌随意删除其他⽤户的数据。

注意在开始时候,我们观察tmp目录权限,发现其他⽤户权限处的“x”将变为“t”,这就是粘滞位的设置。粘滞位权限都是针对其他⽤户( other)设置,使⽤chmod命令设置⽬录权限时,“o+t”、 “o-t”权限模式可分别⽤于添加、移除粘滞位权限。

权限设置

与前面设置rwx类似,我们也可以用数字标识:

4表示SUID
2表示SGID
1表示SBIT

比如
chmod 4755 test 加入SUID
chmod 6755 test 加入SUID和SGID

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值