粘滞位是linux中专为公共目录设计的“防删锁”,它不改变读写权限,只限制删除和重命名操作——即使目录权限为777,也仅文件所有者、目录所有者或root可删改文件;/tmp默认启用(drwxrwxrwt),手动配置可用chmod 1777或chmod +t,末位小写t表示生效,大写t需补o+x;搭配sgid可确保新文件继承属组,提升团队共享安全性。

Linux 中设置目录的“防删除冒险位”,实际指的是设置粘滞位(Sticky Bit),不是“冒险位”——这里存在常见术语混淆。“冒险位”是误传,正确名称为粘滞位(sticky bit),作用是:在共享目录中,**只允许文件拥有者、目录拥有者或 root 删除自己的文件**,防止他人随意删改。
为什么叫“粘滞位”而不是“冒险位”?
“冒险位”属于不规范的口语化误称,源自对英文 sticky bit 的音译偏差或早期文档误译。权威文档(如 POSIX、man chmod、鸟哥私房菜)统一使用sticky bit,对应权限字符为 t 或 T,数字表示为 1000(即八进制前缀 1)。
它只对目录有意义,对普通文件设置无效(现代 Linux 会忽略或仅保留标记,无实际作用)。
如何给目录设置粘滞位
使用 chmod 命令添加 sticky bit:
-
符号法:
chmod o+t /path/to/dir(给“others”组的执行位添加 sticky,最常用且清晰) -
八进制法:
chmod 1755 /path/to/dir(1 表示 sticky;755 是原有 rwxr-xr-x 权限) 注意:必须确保目录本身有 o+x(即其他人可执行/进入),否则显示为 T(大写),表示 sticky 位已设但无执行权,功能仍生效,只是权限显示不同
验证是否设置成功
执行 ls -ld /path/to/dir,观察最后一位权限字符:
-
drwxrwxrwt→ 小写 t:目录有 o+x 权限,sticky 已生效 -
drwxrwxrwT→ 大写 T:目录无 o+x,sticky 已设但不可进入(通常不推荐)
典型例子:/tmp 目录默认就是 drwxrwxrwt,所有用户可写可进,但只能删自己的文件。
常见误区提醒
- ❌ 不要对文件设置 sticky bit 期待“防删除”——它对文件无保护作用
- ❌ 不要用
chmod u+t或g+t:sticky 只在 others(o)位置起作用 - ❌ 不要和 setuid(u+s)、setgid(g+s)混淆:它们分别提升执行者身份为 owner/group,与防删除无关
- ✅ 粘滞位需配合目录的 w 权限才有意义:若用户对目录无写权限,根本无法创建或删除文件,sticky 就无用武之地











