默认acl需手动为目录设置才生效,仅影响后续新建子项,不作用于已有内容或普通文件;设置时须用-d选项指定默认规则,并配合-m添加权限,对文件使用-d会报错。

默认 ACL 不是自动开启的,必须手动为目录设置,新创建的子文件和子目录才能按规则继承权限。它只对目录生效,不作用于已有内容,也不适用于普通文件本身。
只对目录设置,默认 ACL 才起作用
默认 ACL 必须设在目录上,对普通文件执行 setfacl -d 会报错“Operation not supported”。因为继承机制由目录驱动——只有目录能成为权限源头。
- 正确:sudo setfacl -d -m g:devteam:rwx /shared
- 错误:sudo setfacl -d -m u:alice:rx file.txt(会失败)
设置命令要分两步:默认 + 当前
加 -d 只影响后续新建项,不会改变当前目录或已有内容的访问权限。如需让当前目录也拥有相同访问控制,得额外补一条不带 -d 的命令。
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
- 让组 devteam 对新建内容有完整权限:setfacl -d -m g:devteam:rwx /shared
- 同时赋予当前目录同级 ACL:setfacl -m g:devteam:rwx /shared
- 一次设置多个规则(用户+组):setfacl -d -m u:alice:rx,g:devteam:rwx /shared
继承行为要看对象类型
子目录和普通文件继承方式不同,实际权限还受 umask 影响:
- 新建子目录:完整继承父目录的 default ACL,并自动设为自己默认 ACL(可继续向下传)
- 新建普通文件:只继承权限位(如 rwx),但不带 default 标记,因此不能作为继承源
- 例如 default 给 rw-rw-rw-、umask=002 → 文件最终为 rw-rw-r--
验证和清理方法要准确
用 getfacl 查看是否生效;清除时注意 -d 和 -b 的配合,避免误删常规 ACL。
- 检查:getfacl /shared → 看输出中是否有以 default: 开头的行
- 删某条默认规则:setfacl -d -x g:devteam /shared
- 清空所有默认 ACL(保留常规 ACL):setfacl -d -b /shared
- 彻底清空所有 ACL(含默认 + 常规):setfacl -b /shared










