详解Linux中文件的特殊权限:SGID、SUID、SBIT

本文详细介绍了Linux中文件的三种特殊权限:Set UID(SUID)、Set GID(SGID)和Sticky Bit(SBIT)。SUID允许执行者在执行过程中获得文件所有者的权限,例如passwd命令。SGID让执行者在执行时获得用户组权限,如用于共享文件权限。SBIT则限制目录中用户创建的文件只能由自己和root删除。通过实例解析了这些权限的工作原理和应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Set UID(SUID)

什么是SUID?

  当s这个标志出现在文件所有者owner的权限x上时,例如/usr/bin/passwd的权限状态是”-rwsr-xr-x”,这样的形式就被称为SetUID。

SUID的有什么样的限制和功能呢?

  我们首先将SUID拥有的限制和功能列出来,然后再通过一个具体的例子进行解释:

  1. 首先,SUID仅对二进制程序有效;
  2. 执行者要对该程序具有x权限;
  3. 这个权限是在程序的执行过程中发挥作用的;
  4. 执行者将暂时拥有程序owner的权限。

  接下来我们通过一个具体的例子来加深对上面的限制和概念的理解。在Linux系统中,所有的帐号密码都记录在/etc/shadow文件中,这个文件的权限是”r- - - - - - - - 1 root root”(其中1表示i node节点的数目),意思就是只有root可对读这个文件而且可以对这个文件进行强制写入。但是普通用户也是可以通过passwd命令修改自己的密码的。你可能会觉得奇怪,明明其他用户是没有权限访问/etc/shadow这个文件的,为什么密码可以被修改呢?这就是SUID的功能啦。例如,我的当前用户是flyonthemap(在地图上飞行),对应上面的功能和限制的解释则有:

  1. usr/bin/passwd的权限状态是“-rwsr-xr-x”,因此flyonthemap对有x的权限,也就是说可以执行passwd命令。
  2. passwd的拥有者是root。
  3. 我在执行的过程中可以暂时的获得root的权限,强制写入修改的内容。
  4. /etc/shadow可以被vbird所执行的passwd所修改。

  但是flyonth

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值