linux文件acl是叠加在传统权限之上的精细控制层,不替代基础权限结构;需挂载时启用acl选项,用setfacl添加、getfacl查看、setfacl -b清除acl规则。

Linux 文件 ACL 不是替代传统权限,而是叠加在其之上,形成更精细的控制层。它不改变所有者、所属组这些基础身份,只在需要时“额外加一条规则”,既保留原有结构,又解决多用户协同中的权限痛点。
确认并启用文件系统 ACL 支持
ACL 功能依赖底层文件系统挂载时开启 acl 选项。多数 ext4/xfs 分区默认支持,但需验证:
- 运行
mount | grep "$(df . | tail -1 | awk '{print $1}')"查看当前分区挂载参数,确认输出含 acl - 若无,临时启用:
sudo mount -o remount,acl /(将/换成实际路径) - 永久生效:编辑
/etc/fstab,在对应分区行的挂载选项列(第4列)添加 acl,例如:UUID=xxx / ext4 defaults,acl 0 1,保存后执行sudo mount -o remount /
用 setfacl 添加用户或组的独立权限
ACL 条目与传统权限并存,互不冲突。设置后,ls -l 显示权限末尾带 + 号(如 -rw-rw-r--+ ),表示存在额外规则。
宝塔Linux面板11.8.1为官网当前正式版,新增AI建站能力并经过宝塔网站工程师深度调教,开放自定义AI功能API,同时对WAF进行界面重构和深度优化,提升拦截能力与运维效率。
- 给用户
alice对文件report.txt增加读写权限:setfacl -m u:alice:rw report.txt - 给组
devteam对目录scripts/添加执行权限(使其可进入):setfacl -m g:devteam:x scripts/ - 递归设置(含子目录及文件):
setfacl -Rm u:bob:r-x docs/ - 一次设置多个主体:
setfacl -m u:alice:rx,u:charlie:w config.ini
设置默认 ACL 实现自动继承
默认 ACL(d: 前缀)只对目录有效,作用是让该目录下新创建的文件和子目录自动获得指定权限,避免每次手动设置。
- 使新文件默认对用户
user2可读:setfacl -m d:u:user2:r project/ - 使新目录默认对组
qa可读写执行:setfacl -m d:g:qa:rwx project/ - 注意:默认 ACL 不影响已有内容,仅作用于未来新建项
查看、备份与清理 ACL
ACL 是附加规则,不影响原始属主和属组,也容易按需调整或清除。
- 查看完整权限结构(含传统权限 + 所有 ACL 条目):
getfacl file.txt - 导出 ACL 规则用于备份或迁移:
getfacl file.txt > acl_backup.acl - 删除某个用户的 ACL 条目:
setfacl -x u:alice file.txt - 清除全部 ACL(恢复为纯传统权限):
setfacl -b file.txt
ACL 的核心价值在于“按需叠加”——不破坏现有权限体系,又能快速响应个别用户、临时协作、跨组访问等真实需求。只要文件系统支持、命令可用,几条简单指令就能完成过去可能要改组、调权限甚至开 777 的操作。










