acl是linux突破传统三元组权限限制的关键机制,支持为任意用户或组单独授权,具备权限继承、默认acl自动应用及精细生效顺序控制能力。

ACL 是 Linux 权限管理中突破传统三元组(owner/group/other)限制的关键手段,特别适合多角色协作、临时授权、权限继承等真实运维场景。它不改变文件原有属主和属组,就能为任意用户或组单独加权,真正实现“谁该有啥权限,就给啥权限”。
确认并启用 ACL 支持
多数现代发行版(如 CentOS 8+/Ubuntu 20.04+)默认启用 ext4/xfs 的 ACL 支持,但仍建议验证:
- 查看目录所在分区是否支持:
df -h .找到挂载点,再运行dumpe2fs -h /dev/sdXn | grep "Default mount options",输出含 acl 即表示已启用 - 若未启用,可临时挂载:
mount -o remount,acl /mount/point - 永久生效需修改
/etc/fstab,在对应行的挂载选项中加入 acl(如defaults,acl),再执行mount -o remount /mount/point
设置用户/组的独立访问权限
对已有目录(如 /data/project)快速授权特定人员,无需调整用户组归属:
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
- 给用户 alice 读写权限:
setfacl -m u:alice:rw /data/project - 给组 devs 读+执行(可进入、可列内容):
setfacl -m g:devs:r-x /data/project - 移除某用户权限:
setfacl -x u:alice /data/project - 清空所有扩展 ACL(保留 owner/group/other 基础权限):
setfacl -b /data/project
执行后 ls -l /data/project 权限串末尾会出现 +(如 drwxr-xr-x+),表明 ACL 已生效。
配置默认 ACL 实现自动继承
这是目录级精细化管理的核心——让新创建的文件/子目录自动获得预设权限,避免每次手动 setfacl:
- 为目录设置默认 ACL(仅对目录有效):
setfacl -d -m g:devs:rwX /data/project
(注意大写 X:对目录加 x,对普通文件不加 x,更安全) - 此后在
/data/project中新建的文件,自动获得g:devs:rw-;新建的子目录则获得g:devs:rwx并继续继承默认 ACL - 可同时设置多个默认规则,例如:
setfacl -d -m u:deploy:r-x,g:qa:r-- /data/project
查看与排查权限实际生效情况
权限是否按预期起作用,不能只看命令是否成功,要结合检查顺序理解:
- 查完整 ACL 配置:
getfacl /data/project,重点关注user::(属主)、user:alice:(命名用户)、group::(属组)、group:devs:(命名组)、mask::(实际生效上限) - 注意 mask 的作用:所有命名用户/组的权限不能超过 mask 值。如 mask 是
r--,即使设置了u:alice:rw-,alice 实际也只有读权限。必要时用setfacl -m m::rw- /data/project调整 - 权限检查顺序固定:先匹配 owner → 再查是否有匹配 UID 的 user 条目 → 再查 GID 是否匹配属组 → 最后查是否有匹配 GID 的 group 条目 → 落到 other。ACL 条目优先于传统组权限










