sticky位是作用于目录的特殊权限,使用户仅能删除自己创建的文件;符号表示为t,设于其他用户执行位,需目录有wx权限才生效,常用chmod +t或1755设置。

在Linux中,Sticky位(粘滞位)是作用于目录的一种特殊权限,主要用途是:即使用户对目录有写权限,也**只能删除自己创建的文件或子目录**,无法删除他人在此目录中创建的内容。这在共享工作目录(如 /tmp)中非常关键。
什么是目录的Sticky位?
Sticky位用符号 t 表示,显示在目录权限的“其他用户”执行位上。例如:
drwxrwxrwt 12 root root 4096 Apr 5 10:22 /tmp
注意末尾的 t —— 它表示该目录设置了Sticky位(若原本其他用户有执行权则为 t,无则为 T)。只有当目录本身具有执行权限(即 x)时,Sticky位才会生效并显示为小写 t。
如何设置和取消Sticky位?
使用 chmod 命令操作,有两种常用方式:
- 符号模式:
chmod +t /path/to/dir(添加) 或chmod -t /path/to/dir(移除) - 八进制模式:
chmod 1755 /path/to/dir(1表示Sticky位,755是常规权限)
⚠️ 注意:设置 Sticky 位不需要 root 权限,但必须是目录的所有者或具有对该目录的写+执行权限(且通常是所有者);普通用户无法对不属于自己的目录设 Sticky 位(除非有 CAP_FOWNER 等特权)。
Sticky位生效的前提和常见误区
Sticky位只对**目录**有意义,对文件设置无实际效果(旧系统可能保留但已废弃)。它要起作用,需同时满足:
- 目标路径是一个目录
- 该目录对用户有写权限(
w)和执行权限(x)—— 缺一不可 - 用户不是该文件/子目录的所有者,也不是目录所有者或 root
例如:用户 alice 在 /shared(权限 drwxrwxrwt)中创建了 report.txt,用户 bob 虽然能进入并写入该目录,但执行 rm report.txt 会失败,提示 Operation not permitted。
典型应用场景与建议
Sticky位最适合用于多用户协作、临时文件存放等场景:
-
/tmp和/var/tmp系统默认启用,防止用户误删他人临时文件 - 团队项目共享目录(如
/srv/project/shared),避免成员互相覆盖或删除成果 - 配合组权限(如
chmod 2775+chmod +t)实现“组内可写、仅本人可删”的安全协作
? 提示:不要滥用 Sticky 位替代更精细的权限控制(如 ACL 或 SELinux)。它解决的是“谁可以删”,不控制“谁可以读/写文件内容”。文件本身的权限仍独立生效。











