粘滞位(Sticky Bit)实现目录中文件仅所有者可删除,通过chmod o+t或1777设置,并需确保others有执行权限(末位为t而非T)。

在 Linux 中,“防删除”功能对应的不是冒险位(SUID),而是粘滞位(Sticky Bit)。常被误称为“防删除冒险位”,其实是混淆了三个高级权限:SUID(冒险位)、SGID(强制位)和 Sticky Bit(粘滞位)。真正实现“目录中文件仅所有者可删除”的,是 粘滞位(t/T),通常设在目录的其他用户(others)执行位上。
一、为什么粘滞位能防删除
目录的写权限(w)默认允许任何有写权的用户删除该目录下的任意文件(只要目录可写),无论该文件属于谁。
粘滞位启用后,会强制加一层限制:
✅ 只有文件所有者、目录所有者或 root 才能删除或重命名该目录中的文件。
❌ 其他用户即使对目录有 rwx 权限,也不能删走别人创建的文件。
典型例子:/tmp 目录
$ ls -ld /tmp drwxrwxrwt. 12 root root 4096 Oct 12 12:00 /tmp
末尾的 t 就是粘滞位已启用(且 x 存在);若显示为 T,表示粘滞位开启但执行权限被移除(不常见,一般无实际作用)。
二、给目录设置粘滞位的两种方法
-
符号模式(推荐,直观安全)
chmod o+t /path/to/shared_dir
表示:给“其他用户(others)”的权限位添加
t(即粘滞位)。
Zynq Linux Hardware Debug下载Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
-
数字模式(八进制)
粘滞位对应数字1,放在传统三位权限(如755)前面,组成四位八进制数:chmod 1777 /path/to/shared_dir # rwxrwxrwt chmod 1775 /path/to/shared_dir # rwxrwxr-t(others 无 x,t 小写变大写 T)
✅ 正确示例:
mkdir /shared chmod 1777 /shared # 开放读写执行 + 粘滞位 chown root:devteam /shared chmod g+s /shared # 同时加 SGID,让新文件继承组(可选但推荐)
三、验证是否生效
运行以下命令检查目录权限末位:
ls -ld /shared
- 显示
rwxrwxrwt→ ✅ 正常启用(others 有x+t) - 显示
rwxrwxr-T→ ⚠️ 粘滞位已设,但 others 缺少执行权限(x),此时t不起作用(因为进入/操作目录需x) - 显示
rwxrwxrwx→ ❌ 未设置粘滞位
? 提示:对目录而言,
x权限是“可访问”前提(cd、ls内容、删除文件都依赖它),所以t必须配合x才有效 —— 即末位应为t,不是T。
四、常见误区澄清
- ❌ “给目录加 SUID(冒险位)来防删除” —— 无效。SUID 对目录无意义,Linux 忽略目录上的
s(部分系统甚至禁止设置)。 - ❌ “用
chmod u+s或g+s设防删除” —— 这是 SUID/SGID,分别提升执行者身份或继承组,不控制删除行为。 - ✅ 唯一正解:
chmod o+t或chmod 1xxx,且确保 others 有x权限。
不复杂但容易忽略。

















