怎样设置 Linux 目录粘滞位(Sticky Bit)保护共享数据

作者:袖梨 2026-07-07
粘滞位是保护共享目录的关键机制,必须设在有执行权限的目录上,用chmod +t或1xxx八进制方式设置,末位显示小写t即生效;配合属组和setgid(如chmod 2775)可实现组内协作安全。

设置粘滞位是保护共享目录最基础也最关键的一步——它让所有有写权限的用户只能删自己建的文件,别人建的碰都碰不了。核心就一条:粘滞位必须加在目录上,且该目录得有执行权限(x),否则不生效

确认目标是目录并检查当前权限

先确保你要操作的是目录,不是文件:

  • 运行 ls -ld /path/to/shared,输出开头要是 d(如 drwxrwxr-x),才是目录
  • 看末三位权限,比如 rwxr-x---;如果 other 位置没有 x(即不可执行),后续设了粘滞位也会显示大写 T,用户进不去目录,白设

用 chmod +t 快速启用

这是最常用、最不容易出错的方式:

  • 执行 chmod +t /path/to/shared
  • 它只添加粘滞位,不改动已有读写执行权限
  • 验证:再跑一遍 ls -ld /path/to/shared,末位变成小写 t(如 drwxrwxrwt)就成功了

用四位八进制数一步到位

适合需要同时设定完整权限的场景,注意首位“1”就是粘滞位:

  • chmod 1777 /path/to/shared:所有人可读可写可执行 + 粘滞位,典型用于完全开放的上传区(如临时上传目录)
  • chmod 1755 /path/to/shared:所有者/组可读写执行,other 只能读和进入(rx),加粘滞位,适合需限制他人写入但允许浏览的协作目录
  • 别用 17701760:other 没 x,用户进不去目录,粘滞位形同虚设

配合属组与 setgid 提升协作安全性

单靠粘滞位还不够,要让多人协作真正顺畅:

  • 把所有用户加进同一组,例如 usermod -aG uploaders alice bob
  • 改目录属组:chgrp uploaders /path/to/shared
  • 开组写 + setgid(保证新文件自动继承属组):chmod 2775 /path/to/shared
  • 最终理想权限:drwxrwsr-t —— 组内可写、新文件自动归组、粘滞位防误删

相关文章

精彩推荐