Linux默认ACL通过启用文件系统ACL支持、setfacl -d设置默认规则及合理配置umask,实现目录自动继承权限;需验证挂载选项含acl,设置default ACL后测试新文件权限是否生效。

Linux 默认 ACL(Access Control List)能让目录自动继承权限,实现多用户协作时的精细化访问控制。关键在于:先启用文件系统 ACL 支持,再用 setfacl -d 设置默认规则,且需确保 umask 不覆盖关键权限。
确认并启用文件系统 ACL 支持
大多数现代 Linux 发行版默认启用 ACL,但仍需验证:
- 运行
mount | grep "$(df . | tail -1 | awk '{print $1}')" | grep acl,若输出含acl表示已启用;无则需重新挂载 - 临时启用(以根目录为例):
sudo mount -o remount,acl / - 永久生效需编辑
/etc/fstab,在对应分区的挂载选项中加入acl(如defaults,acl),然后重启或重新挂载
设置目录默认 ACL 规则
默认 ACL 只对新创建的文件/子目录生效,不影响已有内容:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 给目录
/shared/project设置默认权限:允许用户 alice 读写、用户 bob 只读、组 devteam 读写 - 执行:
setfacl -d -m u:alice:rwX,u:bob:r-X,g:devteam:rwX /shared/project
(注意大写 X:仅对目录和已有执行位的文件添加执行权) - 验证:
getfacl /shared/project,查看default:开头的条目
配合 umask 确保权限正确继承
即使设了默认 ACL,新建文件仍受用户 umask 影响,可能过滤掉部分权限:
- 例如 umask 为
002,新建文件默认权限是664(即 rw-rw-r--),此时 ACL 中的u:alice:rwX才能真正生效 - 建议协作目录中用户统一使用较宽松 umask(如
002或007),可通过~/.bashrc或/etc/profile设置:umask 002 - 注意:umask 不影响目录的执行位,但影响文件是否可执行——默认 ACL 中的
X能智能规避该问题
常见问题与验证技巧
配置后务必测试,避免“看似设了实则无效”:
- 切换用户(如
su - alice)在目标目录下创建新文件:touch test.txt && mkdir testdir - 检查新文件权限:
getfacl test.txt应显示 alice 的 rw- 条目;getfacl testdir应同时显示 user/group 条目 + default 条目 - 若新文件没继承 ACL,先确认父目录有默认规则(
getfacl输出含default:),再检查 umask 和文件系统是否真启用了 acl - 删除默认 ACL:
setfacl -d -b /shared/project(-b清空所有默认条目)

















