文件特殊权限

本文详细介绍了Linux系统中SUID与StickyBIT两种特殊权限的作用与应用场景。SUID允许普通用户临时获得文件属主的权限,常用于passwd命令;StickyBIT则确保用户仅能删除自己创建的文件,保护/tmp目录的安全。

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

一、SetUID

SetUID 也叫 SUID,它的特点如下:

  • 只有可以执行的二进制程序才能设定 SUID 权限
  • 命令执行者要对该程序拥有 x(执行)权限
  • 命令执行者在执行该程序时获得该程序文件属主的身份(在执行程序的过程中灵魂附体为文件的属主)
  • SetUID 权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效

SetUID 的典型应用场景是 passwd 命令。普通用户可以用 passwd 命令修改自己的密码,修改密码实际上是修改 /etc/shadow 文件,而该文件的权限是 000,那么这时就需要普通用户暂时获得 root 用户的身份,来修改 /etc/shadow 文件,以达到修改密码的目的。我们来看一下 passwd 命令的权限:

在这里插入图片描述

箭头指向的部分,出现了一个 s,这就代表 passwd 命令具有 SUID 权限。

设定 SUID 权限的方法:

chmod 4755 文件名 #755是文件的普通权限,4代表文件的SUID权限
#或者用下面这个命令:
chmod u+s 文件名

取消 SUID 权限的方法:

chmod 755 文件名 #755并不是固定的,具体是多少取决于你想为该文件赋予什么权限
#或者:
chmod u-s 文件名

SUID 权限极其危险,若使用不当,可能会给系统带来灭顶之灾。举个例子,若你给 vim 命令设定了 SUID 权限,那么普通用户在使用 vim 的时候就会变成 root 用户的身份,那他可以用 vim 修改任何系统配置文件,比如,修改 /etc/passwd 文件,把自己也变成超级用户。这无疑是很可怕的。

二、Sticky BIT

因为 sticky 在英文里面是「粘着」的意思,而 bit 是「位」的意思,所以 Sticky BIT 也叫做粘着位。

  • 粘着位目前只对目录有效
  • 普通用户对该目录拥有 w 和 x 权限,即普通用户可以在此目录拥有写入权限
  • 如果没有粘着位,因为普通用户拥有 w 权限,所以可以删除此目录下所有文件,包括其他用户建立的文件。一但赋予了粘着位,除了 root 可以删除所有文件,普通用户就算拥有 w 权限,也只能删除自己建立的文件,但是不能删除其他用户建立的文件

典型如 /tmp/,任何人都可以在这个目录下进行读写,但是只能删除自己创建的目录或文件。

在这里插入图片描述

设置粘着位:

chmod 1755 目录名
chmod o+t 目录名

取消粘着位:

chmod 777 目录名
chmod o-t 目录名 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值