必须用终端命令查看macOS文件ACL详细配置:ls -le显示显式ACL条目(含deny规则和继承标记),getfacl输出POSIX标准格式便于解析,getfacl -d检查默认ACL,且deny规则需通过实际操作验证是否生效。
要准确查看 macos 文件或文件夹的 acl(访问控制列表)详细配置,必须使用终端命令——访达“显示简介”只能看到简化后的用户级权限,无法显示 deny 规则、继承标志、命名 acl 等关键细节。
用 ls -le 查看基础 ACL 条目
这是最常用且直观的方式,能列出当前路径上显式设置的所有 ACL 规则(包括 allow/deny、用户/组名、操作权限及继承标记):
- 执行:ls -le /path/to/item(把路径拖入终端更安全)
- 输出中每行以 user:、group:、everyone: 或 username: 开头的即为 ACL 条目
- 若看到 deny delete,delete_child,说明该条目具有最高优先级的禁止删除能力
- 末尾含 file_inherit 或 directory_inherit 表示该规则会自动应用到新创建的子项
用 getfacl 查看标准 POSIX ACL 格式
getfacl 输出更接近 Unix/Linux 风格,适合脚本解析或跨平台对照:
- 执行:getfacl /path/to/item
- 关键字段包括:user::(所有者基础权限)、group::(所属组基础权限)、other::(其他用户基础权限)、mask::(实际生效的最大权限掩码)
- 若有命名条目,如 user:alice:rwx,表示用户 alice 被单独授权
- 注意:如果输出报错 Operation not supported,说明目标卷未启用 ACL(极少见,多见于挂载的网络盘或旧格式磁盘)
检查默认 ACL(Default ACL)是否启用
默认 ACL 决定新创建子项自动继承哪些权限,它独立于当前项自身的 ACL:
- 执行:getfacl -d /path/to/folder(仅对目录有效)
- 若返回内容含 default:user:、default:group: 等字段,说明已设默认规则
- 若提示 No such file or directory 或无输出,代表该目录未配置默认 ACL,新建文件将只继承基础权限位(如 umask 所控)
验证 deny 规则是否真正生效
ACL 中的 deny 条目优先级高于所有 allow,但容易被误判为“没起作用”,需交叉验证:
- 先运行:ls -le /path/to/folder,确认输出中明确包含 deny 字样及对应操作(如 deny delete_child)
- 再切换到对应用户账户(或用 sudo -u username touch test.txt 模拟),尝试执行被 deny 的操作(如 rm -f item),应提示 Operation not permitted
- 注意:deny 不会阻止所有者用 chflags nouchg 解锁后操作,如需彻底防改,需配合 chflags uchg


















