Linux 共享目录权限设置指南:基于用户组实现安全共享
在 Linux 多用户系统中,我们常常需要创建一个目录,让指定用户组可以读写执行文件 ,而其他用户无法访问。这类场景常见于:
- 研究团队共享数据
- 开发组共享项目
- 多用户服务器文件协作
本文将介绍如何通过 用户组(Group) + SGID + 目录权限策略 ,构建一个安全并可持续维护的共享目录 /data。
目标
| 用户类别 | 权限 | 说明 |
|---|---|---|
developer 组用户 |
✔ 读、写、执行 | 可以访问并修改内容 |
| 其他用户 | 无权限 | 无法读取或进入目录 |
| 新建文件/目录 | 自动继承 group=developer | 不需要后期手动修权限 |
最终权限应类似:
drwxrws--- root developer /data
设置步骤
1. 创建共享用户组(如果不存在)
bash
sudo groupadd developer
2. 将需要访问目录的用户加入该组
⚠️ 用户需要重新登录才能生效
bash
sudo usermod -aG developer user1
sudo usermod -aG developer user2
3. 设置 /data 的所属组为 developer
bash
sudo chown -R root:developer /data
4. 设置权限,使 developer 可读写执行,其他用户无权限
bash
sudo chmod -R 2770 /data
🔍 权限解释
| 数字 | 含义 |
|---|---|
2 → SGID |
新建文件继承 developer 组 |
7 → 所有者权限 rwx |
root 完全控制 |
7 → 组权限 rwx |
developer 成员共享完全权限 |
0 → 其他用户无权限 |
阻止访问 |
设置成功后,可运行:
bash
ls -ld /data
预期输出示例:
drwxrws--- root developer 4096 Nov 14 08:10 /data
总结
通过以上设置,我们实现了:
| 功能 | 状态 |
|---|---|
developer 组共享访问 /data |
✅ |
| 文件权限自动继承组 | ✅(SGID) |
| 其他用户隔离 | ✅ |
| 文件无需后期手动修权限 | ✅ |
这种方式适用于科研、服务器协作、团队工程、共享存储等场景,是 Linux 下非常成熟且安全的权限管理方案。