1. 基础权限设置(目录本身)
- • 目标:让
work 组成员对 /app 拥有读写执行权限。 - • 操作:
chown -R work:work /app # 属主和属组统一设为 workchmod -R 775 /app # 属主和属组全权(7),其他人只读(5)
2. 用户组生效(关键细节)
- • 问题:将用户加入组后,当前已登录的会话不会自动加载新组信息。
- • 或者执行
newgrp work 临时激活新组。
- • 验证:执行
groups 或 id,确认输出中包含 work。
3. 解决“子目录无法继承”问题
- • 问题:
frank 创建的子目录,lijing 无法写入。 - • 新建目录的属组默认取创建者的主要组(未必是
work);
- • 解决方案:① 开启 SetGID(继承属组)
chmod g+s /app
- • 效果:新建目录默认权限为
775,文件默认权限为 664,确保组内成员始终可写。
- • 效果:
/app 下新建的所有子目录/文件,自动继承 /app 的属组(即 work),不再依赖创建者的主要组。 - • 验证:
ls -ld /app 显示 drwxrwsr-x(多了一个 s)。
4. 补救已存在的子目录
如果 /app 下已有旧目录,需递归修复:
chown -R :work /app/* # 将所有子目录的属组改为 workchmod -R g+w /app/* # 给所有子目录的组加上写权限
✅ 最终验证标准
| | |
| ls -ld /app | drwxrwsr-x |
| ls -ld /app/新目录 | |
| touch /app/test | |
| touch /app/frank_dir/test | |
💡 一句话核心口诀
目录设 775 + SetGID,用户设 umask 002,组内协作不打架。
如果以后新增其他用户(如 tom),只需将其加入 work 组并刷新登录即可,无需再调整目录权限。这套配置对 3~5 人的小团队协作部署非常够用。