Linux多用户权限隔离配置实操教程:从零开始隔离用户目录

Linux多用户权限隔离配置实操教程:从零开始隔离用户目录

当多个人共用一台 Linux 服务器时,最怕的就是用户之间互相窜改文件,甚至误删别人的数据。Linux多用户权限隔离配置 就是解决这个问题的关键操作——通过用户组、目录权限和所有权设置,让每个用户只能操作自己的文件,互不干扰。
本文用最简单的步骤,带你一步步完成隔离,哪怕你是第一次接触 Linux 也能照着做。

为什么需要多用户权限隔离?

举个例子:你和同事共享一台服务器,各自存放项目代码。
如果没有权限隔离,A 可以随意删除 B 的目录,B 也可以读取 A 的私密配置。权限隔离 的本质就是基于 Linux 的 ugo(用户、组、其他人)权限模型,为每个用户分配独立的工作目录,并限制其他用户的访问。

准备工作:检查当前用户和系统环境

打开终端(或者通过 SSH 登录服务器),先确认当前登录的用户。
执行:

whoami

确保你使用的是 root 用户 或拥有 sudo 权限的用户,否则后续创建用户和修改目录权限会失败。
接着查看系统版本(可选):

cat /etc/os-release | head -3

本文示例基于 CentOS 7/8 和 Ubuntu 20.04/22.04,命令通用。

第一步:创建用户组和普通用户

我们要把需要隔离的用户放到同一个组里吗?
不一定。
更常见的做法是 每个用户单独一个专用组,这样目录权限更容易控制。
这里演示创建两个用户:dev1dev2

# 创建用户 dev1,同时创建同名组 dev1
useradd -m dev1
# 设置密码
passwd dev1

# 创建用户 dev2
useradd -m dev2
passwd dev2

-m 参数会自动创建用户的家目录(/home/dev1/home/dev2)。
现在用户已经存在,但默认权限可能允许其他用户读取自己的家目录,需要进一步隔离。

第二步:设置目录权限和所有权

查看家目录的默认权限:

ls -ld /home/dev1

输出类似 drwx------ 表示只有 owner(dev1)有权限,其他人无任何权限。
这已经是隔离状态了。
但有时服务器上的 /home 目录权限可能过于宽松,或者你需要单独为某个共享目录做隔离。
这里再演示一个 共享项目目录 的隔离场景:创建一个 /data/share 目录,要求 dev1 和 dev2 都能读写,但互不可删对方的文件。

mkdir /data/share
# 创建用户组 devteam
groupadd devteam
# 将两个用户加入组
gpasswd -a dev1 devteam
gpasswd -a dev2 devteam
# 设置目录组为 devteam
chgrp devteam /data/share
# 设置权限:所有者与组读写执行,其他人无权限;并设置粘滞位
chmod 2770 /data/share

粘滞位(权限中的 2chmod 的 2000 位)的作用是:即使目录对组可写,用户也只能删除自己的文件,无法删除别人的。

第三步:测试用户权限隔离

先测试家目录隔离。
用 dev1 登录:

su - dev1
ls /home/dev2

应该提示 Permission denied
再往 /home/dev2 里写文件也会被拒绝。

测试共享目录粘滞位:

# 以 dev1 身份在 /data/share 创建文件
touch /data/share/test1_dev1
# 切换为 dev2
su - dev2
touch /data/share/test2_dev2
# 尝试删除 dev1 的文件
rm /data/share/test1_dev1

如果粘滞位生效,会提示 Operation not permitted,并且文件保留。

常见问题与避坑

  • Q:为什么改了权限后其他用户依然能访问?

A:检查目录的上级目录权限。
比如 /data 如果对其他人有 x 权限,就能遍历到 /data/share
建议 /data 权限设为 755750,只允许 root 和组访问。

  • Q:粘滞位不生效?

A:确认目录权限是 27701777(末尾是 7)。
chmod 1777 /data/share 也可以,但组写权限要保证。

  • Q:创建用户后无法 SSH 登录?

A:检查 /etc/ssh/sshd_config 中是否禁止了密码认证,或者用户家目录权限不对(不能是 777)。

  • 避坑重点
  • 不要在 /home 目录上直接设置粘滞位,系统默认家目录权限是 700,不需要额外操作。
  • 修改用户所属组后,用户需要重新登录才能生效组权限。
  • 生产环境中,建议用 ACLgetfacl/setfacl 实现更精细的权限控制,但本文的基础方法已满足多数场景。

验证隔离效果:一条命令确认

最后,用 root 身份执行以下命令,快速检查每个用户家目录的权限:

ls -la /home/

理想状态是每个目录权限显示为 drwx------drwxr-x---(如果希望同组可读)。
对于共享目录 /data/share,检查是否包含粘滞位标志(权限末尾有 t):

ls -ld /data/share
# 输出示例:drwxrws---... 或 drwxrwx--T

如果你按照上述步骤完成了配置,Linux多用户权限隔离 就已经生效了。
建议把这个配置流程记录下来,以后新增用户时直接复用。
遇到异常时,优先回看避坑部分,多数问题都能解决。

---
*本文适用于 CentOS 7/8、Ubuntu 20.04/22.04,命令兼容主流发行版。如果使用其他发行版,注意 useraddgroupaddgpasswd 的语法差异。*

分享到:
上一篇
Linux离线安装软件完整步骤:零基础也能搞定内网部署
下一篇
Linux网络延迟卡顿排查方案:从入门到实战
1
系统公告

泽御云五一特惠活动🔥

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