粘滞位是linux中专用于目录的安全机制,解决“大家都能写但不能乱删别人文件”的矛盾,仅允许文件所有者、目录所有者或root删除/重命名文件;典型应用如/tmp目录(权限drwxrwxrwt),设置方式为chmod +t或chmod 1777,生效需目录具备执行权限(显示为小写t)。

粘滞位是Linux运维中保护共享目录最直接有效的机制,它不改变读写权限,只限制谁有权删除或重命名文件——哪怕目录权限是777,也只有文件所有者、目录所有者或root才能删。
为什么共享目录必须加粘滞位
普通目录只要用户有写权限,就能删掉里面任意文件,哪怕文件属于别人。比如设为777的/shared目录,userA创建的log.txt,userB也能直接rm掉。这在协作场景中极不安全。粘滞位正是为此而生:它让写权限“只管创建和修改内容”,把“删/移文件”的权力收归文件主或目录主。
- /tmp就是最典型的例子:所有用户可读可写可进(rwxrwxrwt),但没人能删别人的临时文件
- 没有粘滞位时,删除动作只看目录写权限;有了它,还要额外校验文件归属
- 它不防内容修改(只要文件本身有w权限),只防删除和重命名
怎么设置和识别粘滞位
设置方式有两种,效果一致,按习惯选:
- 符号法:chmod +t /shared 或 chmod o+t /shared(明确作用于others)
- 数字法:chmod 1777 /shared(1代表粘滞位,777是基础权限)
生效后,用ls -ld看权限字段末尾:
- 显示小写t(如drwxrwxrwt)→ 目录有执行权+x,粘滞位已生效
- 显示大写T(如drwxrwxr-T)→ 目录无执行权,粘滞位存在但无效(用户根本进不去目录)
团队共享目录的推荐配置
单靠粘滞位不够,常需搭配其他权限策略:
- 推荐权限:1775 或 1770(如drwxrwsr-t),配合setgid(g+s)确保新文件自动继承目录属组
- 避免递归乱设:chmod -R +t虽可用,但子目录若本不该开放写权限,加了反而增加风险
- 别给文件设粘滞位:对普通文件设置无效,系统会忽略
- umask无法自动带粘滞位,新建目录默认不会包含它,必须手动或脚本补设
失效场景与排查要点
粘滞位看似简单,但容易因细节失效:
- 目录缺少执行权限(x)→ 用户无法cd进入或ls列出,t变成T,保护形同虚设
- 误将目录属主设为某用户,而协作成员都不是该用户或root → 实际只有属主和root能删文件,协作受阻
- 没配合组权限:即使有粘滞位,若组成员对文件无读写权,仍无法协作编辑











