Linux用户组管理权限隔离:Linux用户组权限隔离实战

为什么需要用户组权限隔离

当一台Linux服务器上有多个用户(比如开发人员、运维、测试),你肯定不希望他们互相乱翻文件。用户组权限隔离是最直接的解决方案:把相同职能的用户放进一个组,然后给这个组分配特定目录的读写权限,其他人无权限。
这样既不用给每个人单独设置,又能保证数据安全。

动手前先确认两件事

  1. 你有root或sudo权限。大部分组管理命令需要sudo执行。
  2. 已规划好用户和组的对应关系。例如:项目A的成员放在group-a组,项目B的成员放在group-b组。

实操:创建用户组并分配权限

假设要创建一个名为webdev的组,把用户alicebob加进去,然后让/var/www/project目录只允许webdev组成员读写。

1. 创建用户组

sudo groupadd webdev

如果要同时设置组ID(GID),可以用-g参数。

2. 将用户添加到组

sudo usermod -aG webdev alice
sudo usermod -aG webdev bob
注意-aG-a表示追加,-G指定附加组。如果漏了-a,会移除用户的其他辅助组。

3. 设置目录的组所有权和权限

sudo chown -R :webdev /var/www/project
sudo chmod -R 770 /var/www/project

chown -R :webdev把目录的所属组改为webdevchmod 770给所有者(root)和组(webdev)读写执行权限,其他人无权限。

4. 启用SGID位(推荐)

SGID可以让用户在目录内新建的文件自动继承目录的组,避免新文件变成用户的私有组。

sudo chmod -R g+s /var/www/project

验证:ls -ld /var/www/project,权限会显示rwxrws---(注意组权限位的s)。

常见坑:权限不生效的排查方向

  • 用户未重新登录usermod后用户需要退出重登才会生效。可以用groups alice查看当前组,如果没出现webdev,重登即可。
  • umask影响:新建文件的权限受umask限制。默认umask 022会去除组写权限。可以在~/.bashrc里加umask 002让组保留写权限(仅限该用户)。
  • 主组vs附加组混淆usermod -g会改主组,慎用。文章用的-aG是添加附加组,不影响用户主组与家目录权限。
  • SGID未设置:如果用户新建文件组仍是其私有组,检查g+s位是否生效。

验证结果并巩固设置

  1. alice登录,尝试在/var/www/project下创建文件。
su - alice
cd /var/www/project
touch test.txt
ls -l test.txt

如果组是webdev,权限包含组写,说明隔离生效。

  1. 用另一个非webdev组的用户(比如testuser)尝试访问该目录,应提示权限拒绝。
sudo useradd testuser
sudo passwd testuser
su - testuser
cd /var/www/project   # 应报 Permission denied

至此你就完成了完整的Linux用户组管理权限隔离配置。
以后新增成员只需继续用usermod -aG添加即可,无需反复改目录权限。
建议定期用ls -l检查关键目录的组和SGID位是否被错误修改。

分享到:
上一篇
WordPress站内优化技巧实操:从插件到数据库全攻略
下一篇
Docker部署PostgreSQL数据库:新手实操全流程
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意