使用 chown :groupname 和 chmod 2770 可快速搭建开发共享目录:先设属组,再启 sgid 使新建文件自动继承组身份;配合 umask 002 和用户加组,确保组内协同编辑且权限不外泄。

直接用 chown :groupname 配合 chmod 2770 就能快速建起一个开发团队共享目录,核心是让新创建的文件自动继承组身份、组成员可协同编辑,同时避免权限外泄。
第一步:创建目录并指定属组
先建目录,再用 chown 把属组设为团队组(比如 devteam),注意不改属主(留空或用 : 开头):
mkdir /srv/team-shared-
sudo chown :devteam /srv/team-shared(只改属组,不碰属主)
第二步:设置 SGID + 组读写执行权限
chmod 2770 中的 2 是 SGID 位,确保后续所有在该目录里新建的文件/子目录自动归属 devteam 组;770 表示属主和属组都有读、写、执行权,其他人完全无权访问:
sudo chmod 2770 /srv/team-shared- 验证效果:
ls -ld /srv/team-shared应显示drwxrws---(注意组执行位是 s,不是 x)
第三步:确保成员属于该组且使用默认 umask
SGID 要生效,用户得是 devteam 组成员,且新建文件时不能被 umask 过度过滤掉组写权限:
- 把开发者加进组:
sudo usermod -aG devteam alice、sudo usermod -aG devteam bob - 检查用户组成员身份:
groups alice - 建议团队统一设置
umask 002(例如在/etc/profile或用户~/.bashrc中),这样新文件默认权限是664、新目录是775,组写权限才保留下来
第四步:验证协作行为是否正常
让任意组成员在目录中创建文件,检查是否自动归属 devteam 组,且同组其他成员能否修改:
- alice 执行:
cd /srv/team-shared && echo "test" > note.txt - bob 执行:
cat /srv/team-shared/note.txt(应能读) - bob 执行:
echo "added" >> /srv/team-shared/note.txt(应能追加) - 查看权限:
ls -l /srv/team-shared/note.txt→ 属组应为devteam,权限类似-rw-rw----











