sticky bit的核心目标是允许多用户在共享目录中自由创建文件,但仅允许文件所有者、目录所有者或root删除或重命名文件;它通过chmod 1777或chmod +t设置,生效时权限末位显示为t(others有x)或t(无x),需确保others有执行权限才能正常使用。

在 Linux 中设置 Sticky Bit,核心目标是让多人可写的目录既能自由创建文件,又不能随意删除别人的内容。它不阻止修改文件内容,只管“删”和“重命名”这两件事。
什么时候必须加 Sticky Bit
当你建了一个所有人(或某组用户)都能写入的共享目录,比如团队临时文件夹、上传区、构建缓存目录,就该启用它。否则只要目录权限含 w(写),任何有权限的用户都能 rm 掉别人放进去的文件——哪怕文件属主不是他。
两种设置方式,效果一样
推荐用数字法,清晰不易错;符号法更直观,适合脚本中明确作用对象:
-
数字法:
chmod 1777 /shared(1 是 Sticky Bit,777 是基础 rwxrwxrwx) -
符号法:
chmod +t /shared或更精确地chmod o+t /shared(只对 others 开启)
检查是否生效,看末尾是 t 还是 T
运行 ls -ld /shared,关键看权限字符串最后一位:
-
t:Sticky Bit 已设,且 others 有执行权限(
x),目录可进入、可列内容、可删自己文件 -
T:Sticky Bit 已设,但 others 缺少
x权限,此时用户进不去目录,也无法删任何文件(包括自己的)——需补上:chmod o+x /shared
常见问题与修复
如果设置了却不起作用,优先排查这两点:
- SELinux 启用时可能拦截:用
ls -Z /shared查上下文,必要时临时同步为tmp_t类型:sudo chcon -t tmp_t /shared - 目录所有者不是 root?没问题。只要用户是文件所有者、目录所有者或 root,就能删文件。普通协作场景中,把目录属主设为一个共享组(如
chown :devteam /shared),再配合chmod 2775(SGID)+1775(Sticky Bit),效果更稳











