首页/系统/Linux 运维命令速查/特殊权限位:SUID/SGID/粘滞位

特殊权限位:SUID/SGID/粘滞位

三组特殊位改变执行语义:SUID 以属主身份运行、SGID 继承属组(目录则继承组)、粘滞位(/tmp 的 1777)限制删除他人文件。

Linux 运维命令速查系统更新于 2026-10-13

特殊权限位是什么

Linux 的权限位里还有三位特殊标记:SUID(4)、SGID(2)与粘滞位(1)。SUID 让程序以文件属主身份运行,passwd 就是典型例子;SGID 用于文件时以文件属组身份运行,用在目录上则让新建文件继承该目录的属组;粘滞位作用在目录上,限制只有文件属主或目录属主才能删除文件,/tmp 就是 1777。三者都改变「以什么身份、能做什么」的语义,而不只是读写权限。

基本信息

数字位SUID=4、SGID=2、粘滞位=1,与普通权限位相加,如 4755、2755、1777
查看方式ls -l 中属主执行位显示 s 表示 SUID,属组执行位显示 s 表示 SGID,其他人位显示 t 表示粘滞位
大小写含义小写 s 或 t 表示同时带有执行位,大写 S 或 T 表示没有执行位
排错入口stat -c '%a %n' 直接看八进制值最直观

典型使用场景

  • 理解系统二进制:passwd、sudo 这类需要临时提权的程序依赖 SUID
  • 共享目录协作:目录设 SGID 后组内新建文件自动继承属组,省掉反复改属组
  • 公共可写目录:粘滞位防止用户互相删除他人文件,/tmp 与 /var/tmp 都这么用
  • 安全盘点:定期找出系统里所有 SUID 文件,核对是否有异常新增
  • 挂载加固:数据盘或用户目录挂载时加 nosuid、nodev,削弱特殊位带来的风险

识别与设置

识别与设置
ls -l /usr/bin/passwd            # -rwsr-xr-x 表示 SUID
ls -ld /tmp /var/tmp             # drwxrwxrwt 表示粘滞位
ls -ld /data/share               # drwxrws--- 表示目录级 SGID
stat -c '%a %n' /usr/bin/passwd /tmp /data/share
chmod g+s /data/share            # 给目录加 SGID,新建文件继承属组
chmod +t /data/public            # 加粘滞位
chmod 0755 /opt/app/tool         # 清掉全部特殊位

盘点与挂载加固

盘点与挂载加固
find / -xdev -perm -4000 -type f -ls 2>/dev/null      # 全盘 SUID 文件清单
find /data -xdev -perm -2000 -type d -ls 2>/dev/null   # 带 SGID 的目录
cp -a src dst                                          # cp -a 会保留特殊位,慎用
# /etc/fstab 中给数据盘与用户目录加保护
# /dev/vg0/data  /data  ext4  defaults,nosuid,nodev  0  2
mount | grep -E 'nosuid|noexec'

权限位显示与含义

显示形态数值含义
-rwsr-xr-x4755SUID 且属主有执行位
-rwSr--r--4644有 SUID 但属主无执行位,SUID 实际不生效
-rwxr-sr-x2755SGID 且属组有执行位
drwxrws---2770目录级 SGID,新建文件继承属组
drwxrwxrwt1777目录粘滞位,只有属主可删自己的文件
drwxrwxrwT1776有粘滞位但其他人无执行位,通常无法进入该目录
脚本文件设置 SUID 在多数现代内核上不生效(内核对解释型脚本的提权做了限制)。需要提权能力时应使用编译型程序或通过进程能力与 sudo 规则实现。
SUID 程序是提权攻击的首选目标:它天然以更高权限运行,一旦程序本身存在缺陷,影响面会被放大。定期盘点 SUID 清单、及时清理不再需要的条目,是最基本的防线。

易错点

  • 把特殊位当成普通权限位相加:4755 与 0755 的执行身份语义不同,改权限时要明确是否需要保留特殊位
  • 用 cp -a 或 rsync -a 复制系统目录:会连同 SUID 一起复制,把提权入口带到不该有的位置
  • 看到大写 S 或 T 不知所措:它表示特殊位存在但对应的执行位缺失,多数情况下意味着配置有误
  • 依赖粘滞位保护公共目录:它只限制删除与改名,不限制读取,敏感数据仍需要更严格的权限模型

数据来源与参考

  • man 1 chmod(特殊位说明)
  • man 7 inode(文件模式位)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌