Linux中查看特殊权限位,关键看ls -l输出第一列第4(属主x位)、第7(属组x位)、第10(other x位)字符:s/S表示SUID,小写s说明属主有执行权,大写S说明无执行权;同理,属组位s/S为SGID;other位t/T为Sticky Bit。

Linux 中查看文件的特殊权限状态,关键看 ls -l 输出的第一列权限字符串中,原本属于“属主、属组、其他人”的执行位(x)位置上是否出现了 s、S 或 t、T 这类字符。
怎么看特殊权限位是否启用
运行 ls -l 文件名 或 ls -ld 目录名,观察权限字段第 4、7、10 个字符(即属主 x 位、属组 x 位、other x 位):
- 如果属主 x 位是 s:表示设置了 SUID(Set UID),且属主有执行权限
- 如果属主 x 位是 S:表示设置了 SUID,但属主没有执行权限(x 缺失)
- 如果属组 x 位是 s:表示设置了 SGID(Set GID),且属组有执行权限
- 如果属组 x 位是 S:表示设置了 SGID,但属组没有执行权限
- 如果 other x 位是 t:表示设置了 Sticky Bit,且 others 有执行权限(常见于 /tmp)
- 如果 other x 位是 T:表示设置了 Sticky Bit,但 others 没有执行权限
举例说明权限字符串含义
比如这条输出:
-rwsr-xr-t 1 user group 1024 Oct 9 23:00 script.sh
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 第 4 位是 s → 属主有 SUID
- 第 7 位是 x(不是 s/S)→ 属组未设 SGID
- 第 10 位是 t → 其他人有 Sticky Bit,且有执行权限
用 stat 命令确认更清晰
stat 会明确列出特殊权限标志:
-
stat 文件名→ 查看 Access 字段,如Access: (6755/-rwsr-xr-x)中的 6 表示 SUID+SGID 同时存在(4+SUID + 2+SGID) - 数字权限前缀为 4(SUID)、2(SGID)、1(Sticky);可叠加,如 4755 表示 SUID + rwxr-xr-x
- 若看到 2755,说明只有 SGID;1777 表示仅 Sticky Bit(如 /tmp 默认)
注意区分大小写和上下文
小写 s/t 表示对应位置原本就有 x 权限;大写 S/T 表示特殊权限已设,但执行位被移除。例如:
-
-rws------:属主可读写执行 + SUID 生效 -
-rwS------:SUID 已设,但属主不能执行该文件(x 缺失) -
drwxrwxrwt:目录有 Sticky Bit(t),且 everyone 都能进入和列出内容

















