setfacl -b 可彻底清空文件或目录的扩展ACL规则,仅保留基础u/g/o权限;不改变属主、属组及rwx位;需所有者或root权限;非递归,清空目录树需加-R;建议先备份ACL规则。

用 setfacl -b 命令可以彻底清空文件或目录上所有扩展的 ACL 权限规则,只保留基础的属主、属组、其他人(u/g/o)三类传统权限。
这个操作不会改动文件原有属主、属组,也不会影响 rwx 基础权限位,只是把所有通过 setfacl 添加的额外用户/组权限全部移除。
基本用法
setfacl -b 文件名 setfacl -b 目录名
例如:
setfacl -b /tmp/test.txt
执行后,ls -l 显示的权限末尾的 + 号会消失,说明 ACL 已被清除;再用 getfacl 查看,输出中将不再出现 user:xxx: 或 group:xxx: 这类行,只剩 user::, group::, other::, mask:: 等基础条目。
注意事项
-
-b选项对目录本身生效,不递归处理子项。若要清空整个目录树的所有 ACL,需加-R:setfacl -bR /path/to/dir
- 该命令需要文件所有者权限或 root 权限才能执行。
- 清空后无法自动恢复,建议操作前先用
getfacl 文件名 > acl.bak备份规则。
验证是否清空成功
getfacl 文件名 | grep -E "user:|group:" # 无输出即已清空 ls -l 文件名 # 权限串末尾不应再有 "+"
不复杂但容易忽略


















