Linux权限管理核心是“组为钥匙”,通过属主/属组/其他人三重身份与rwx权限位精准控制访问,结合setgid确保目录下文件自动继承组归属,实现部门级隔离与协作。

核心思路是:用组作为权限载体,目录归属明确,权限位精准控制读写执行范围。不是靠用户单独设权,而是让“组”成为访问钥匙。
创建部门组和对应用户
先建两个组,比如 dept_sales 和 dept_dev:
groupadd dept_sales
groupadd dept_dev
再创建用户并指定主组(或附加组),例如销售部员工 s1、s2:
useradd -g dept_sales s1
useradd -g dept_sales s2
开发部员工 d1、d2:
useradd -g dept_dev d1
useradd -g dept_dev d2
注意:-g 指定的是基本组(主组),这决定了用户新建文件的默认属组,对后续权限继承很关键。
规划目录结构并设置归属
统一挂载在 /shared 下,按部门分层:
mkdir -p /shared/{sales,dev}
mkdir -p /shared/sales/{s1,s2}
mkdir -p /shared/dev/{d1,d2}
设置顶层部门目录属组为对应组,并开启 setgid 位,确保子目录自动继承组:
chown :dept_sales /shared/sales
chown :dept_dev /shared/dev
chmod g+s /shared/sales /shared/dev
再把各人子目录属主设为本人、属组设为部门组:
chown s1:dept_sales /shared/sales/s1
chown s2:dept_sales /shared/sales/s2
chown d1:dept_dev /shared/dev/d1
chown d2:dept_dev /shared/dev/d2
配置权限位实现隔离与协作
部门内可读不可改、个人可读写、跨部门完全隔离——靠三段权限组合实现:
- 部门顶层目录(如 /shared/sales)设为 750:所有者(root 或管理员)全权,组员(sales 组)可进入、列出、读取,但不能改;其他人无任何权限
- 个人子目录(如 /shared/sales/s1)也设为 750:s1 自己可读写执行,sales 组成员能进、看、复制内容,但无法修改或删除
- 确保 /shared 根目录至少是 755,否则普通用户连入口都进不去
执行命令示例:
chmod 750 /shared/sales /shared/dev
chmod 750 /shared/sales/s1 /shared/sales/s2 /shared/dev/d1 /shared/dev/d2
chmod 755 /shared
验证与补充说明
切换到 s1 用户后,执行 ls -ld /shared/sales 应显示 drwxr-x---,且组名为 dept_sales;执行 touch /shared/sales/s1/test.txt 成功,但 touch /shared/sales/s2/test.txt 会提示 Permission denied。
若需更细粒度(如允许某经理跨部门只读),可用 ACL 补充:
setfacl -m u:manager:r-x /shared/dev
不复杂但容易忽略。


















