ACL提供比Linux标准权限更灵活的访问控制,通过getfacl查看、setfacl设置,支持用户/组粒度、单文件级控制及目录默认ACL自动继承。

Linux标准权限(u/g/o)在多人协作场景中常显僵硬,ACL(访问控制列表)提供了更灵活的解决方案。getfacl用于查看,setfacl用于设置,两者配合可实现单文件级、用户/组粒度、自动继承等精细控制。
查看ACL权限:getfacl基础与实用选项
执行getfacl filename会输出完整ACL结构,包括所有者、所属组、other、额外用户/组条目及mask掩码。关键细节在于:
- -a 只显示访问ACL(排除默认ACL),适合快速确认当前生效规则
- -d 专用于目录,只显示default:开头的默认ACL,判断新文件是否能自动继承
- -c 隐藏注释头(如# file:、# owner:),便于脚本解析或简洁查看
- -R 递归列出子项ACL,但需谨慎使用,避免输出过长
添加或修改权限:setfacl -m 的常见写法
使用-m(modify)可安全追加或更新规则,不会覆盖已有ACL。格式统一为u:用户名:权限或g:组名:权限:
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
- 给用户alice读写权限:
setfacl -m u:alice:rw file.txt - 给dev组读写执行权限:
setfacl -m g:dev:rwx /shared/project - 同时设置多个条目:
setfacl -m u:alice:rx,g:qa:r /docs - 权限字符支持r/w/x,也可用八进制如
rw-或600风格(不推荐混用)
设置默认ACL:让新文件自动继承权限
仅对目录有效,默认ACL确保后续创建的文件和子目录自带指定权限,无需手动重复设置:
- 为developers组设默认读写执行:
setfacl -d -m g:developers:rwx /team/repo - 默认ACL不影响已有文件,只作用于未来新建项
- 验证方式:
getfacl -d /team/repo,输出中含default:前缀条目 - 若需清除默认ACL,用
setfacl -k /team/repo
清理与维护:安全移除ACL条目
权限调整后及时清理冗余规则,避免权限残留或冲突:
- 删除特定用户权限:
setfacl -x u:temp_user /data - 删除整个扩展ACL(保留基础u/g/o):
setfacl -b /data - 批量清空某用户所有ACL(跨多目录):
find /path -exec setfacl -x u:olduser {} \; - 注意:chmod操作可能重置mask值,必要时用
setfacl --mask手动修正

















