2025.09.16【服务器维护】|Linux 文件权限管理:chmod 与 ACL 的区别

Linux 文件权限管理:chmod 与 ACL 的区别与实战

在日常的 Linux 使用中,我们经常会遇到权限问题。比如共享数据、限制访问、赋予同事只读权限等。这时候常见的工具有两类:chmod(传统 Unix 权限)和 setfacl(访问控制列表,ACL)。本文整理了区别,并提供一些实战命令。


一、chmod 的权限机制

Linux 里的文件权限一开始只有 三类主体

  • owner(属主):文件的拥有者。
  • group(属组):通常是某个用户组。
  • others(其他人):系统里的其他用户。

每类主体可以有三种权限:

  • r (read) → 读权限(文件可读/目录可列出)。
  • w (write) → 写权限(文件可改/目录可增删文件)。
  • x (execute) → 执行权限(文件可执行/目录可进入)。

ls -l 就能看到:

-rwxr-x---

表示:

  • owner 有 rwx
  • group 有 r-x
  • others 无权限

👉 局限:只能控制三类主体,无法对具体用户做细粒度控制。


二、ACL 的权限机制

ACL (Access Control List) 是对 chmod 的扩展,允许对任意用户或组单独授权

例子:

# 给 alice 读/执行权限
setfacl -m u:alice:rx /data/project

# 给 bob 读写权限
setfacl -m u:bob:rw /data/project

# 查看 ACL
getfacl /data/project

ACL 能精细化控制权限,非常适合多人协作场景。


三、chmod 与 ACL 的关系

  • chmod = 基础框架,三类主体(owner/group/others)。
  • ACL = 补充规则,可对个别用户/组单独设定。
  • 最终权限 = chmod + ACL 的综合结果。

⚠️ 注意:如果 chmod 去掉了执行权限,即使 ACL 给了用户 rx,用户也可能还是进不去目录。因此建议 chmod 设置基础安全边界,ACL 做额外授权


四、实战示例

1. 给自己目录设置基本权限

chown -R User:User /home/User
chmod -R 2750 /home/User
  • 目录属主 yangxin 拥有完全权限。
  • 属组有访问权限。
  • others 无权限。

2. 给同事只读访问权限

setfacl -R -m u:alice:rx /home/alice
setfacl -R -m u:bob:rx /home/bob

# 默认 ACL,保证新建文件也继承
setfacl -d -m u:alice:rx /home/alice
setfacl -d -m u:bob:rx /home/bob

效果:

  • 个人用户:完全控制。
  • 同事们:可以 lscp,但不能删除/修改。
  • 其他用户:没有权限。

3. 恢复可执行文件权限的坑

如果不小心用 chmod -R 664 把所有文件权限覆盖,像 conda 这种可执行程序会失效:

-bash: /home/user/miniconda3/bin/conda: Permission denied

修复方法:

find /home/user/miniconda3/bin -type f -exec chmod 755 {} +

五、总结

  • chmod 适合简单场景,三层模型够用。

  • ACL 适合团队协作,可以精细化到具体用户。

  • 最佳实践:

    • 用 chmod 设定基础权限(owner / group / others)。
    • 用 ACL 对需要的用户/组补充授权。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

穆易青

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值