首页/系统/Linux 运维命令速查/场景:团队共享目录权限设计

场景:团队共享目录权限设计

多人协作目录的经典需求:组内可写、新文件属组正确、互不误删;用 SGID + 默认 ACL + umask 三板斧落地。

Linux 运维命令速查系统更新于 2026-10-13

共享目录权限设计是什么

多人协作目录的典型需求是组内可写、新建文件自动继承正确的属组、成员之间不互相误删。用目录的属组继承位配合默认访问控制列表与合理的权限掩码,可以一次性把这三件事钉死,而不是每次出问题再补权限。

基本信息

场景团队共享目录协作
方案属组继承位、默认访问控制列表、合理的权限掩码
验证方式用两个账号互测读写
补充手段目录粘滞位限制互相删除

典型使用场景

  • 新建共享目录:项目组共用的数据或代码目录
  • 修正历史目录:既有目录权限混乱,需要一次性规整
  • 新增成员:加入用户组后即可访问,不用逐个改目录
  • 隔离其他组:用权限掩码确保其他组没有任何权限
  • 防误删:需要成员不能删除他人文件时收窄删除权限

一次性配置

一次性配置
sudo groupadd devteam
sudo usermod -aG devteam alice
sudo usermod -aG devteam bob
sudo mkdir -p /data/shared
sudo chown root:devteam /data/shared
sudo chmod 2775 /data/shared                  # 属组继承位:新建对象继承 devteam 组
sudo setfacl -m d:g:devteam:rwx /data/shared  # 默认访问控制列表
sudo setfacl -m d:o::- /data/shared

验证

验证
sudo -u alice touch /data/shared/a.txt
ls -l /data/shared/a.txt                  # 属组应为 devteam
sudo -u bob touch /data/shared/b.txt      # bob 应能写入
getfacl /data/shared | head -n 20         # 复核默认条目

机制对照

机制作用注意
目录属组继承位新建对象继承父目录属组只影响属组,不改变权限位
默认访问控制列表新条目自动带上指定权限改动后对新建对象立即生效
权限掩码控制新建对象的初始权限与继承位配合使用
粘滞位限制成员删除他人文件常用于全员可写目录
用户组成员统一授权入口新增成员只需加入组
只给已有文件加访问控制列表而不加默认项,新建文件永远不带权限,问题会反复出现。
属组继承位只保证目录内新建对象继承属组,子目录被移出目录树后继承关系随之消失。
共享目录里成员可写就意味着可以删除彼此的文件,需要隔离时用粘滞位或收窄删除权限。

易错点

  • 只改已有文件的访问控制列表而不加默认项,新建文件永远不带权限,问题反复出现
  • 属组继承位只对目录内新建对象生效,子目录被移出后继承关系消失
  • 全员可写目录不加粘滞位,成员可以删除彼此的文件,容易造成数据丢失
  • 把用户直接改成目录属主而不是用用户组统一授权,新增成员时要逐个调整

数据来源与参考

  • man 1 setfacl
  • man 1 chmod(2 位 SGID)
  • man 5 acl

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌