使用 setfacl 命令删除 ACL 权限:1. 用 setfacl -x u: 用户名或 g: 组名删除特定用户或组权限;2. 用 setfacl - b 清除所有扩展 ACL;3. 加 - R 参数可 递归 操作目录;4. 用 getfacl 验证删除结果,确保权限配置正确。

在 linux 中删除 ACL(访问控制列表)权限,主要使用 setfacl 命令进行操作。你可以选择删除某个文件或目录的特定用户 / 组的 ACL 权限,也可以彻底移除该文件或目录的所有扩展 ACL 权限。
删除特定用户的 ACL 权限
如果你想移除某个用户或组对文件的特定权限,可以使用 -x 选项:
- setfacl -x u: 用户名 文件名 —— 删除指定用户(u)的 ACL 权限
- setfacl -x g: 组名 文件名 —— 删除指定组(g)的 ACL 权限
例如,移除用户 alice 对 file.txt 的 ACL 设置:
setfacl -x u:alice file.txt
删除所有扩展 ACL 权限
如果想清除文件或目录上的所有额外 ACL 规则,只保留基本的用户、组和其他权限(即 u go权限),使用 -b 选项:
setfacl -b 文件名
这会删除该文件或目录的所有扩展 ACL 条目,恢复到标准权限模式。
递归删除目录中所有文件的 ACL
若要对某个目录及其内部所有文件和子目录统一删除 ACL 权限,添加 -R 参数:
- setfacl -b -R / 路径 / 到 / 目录 —— 递归清除所有 ACL
- setfacl -x u: 用户名 -R / 路径 / 到 / 目录 —— 递归移除某用户的 ACL
验证 ACL 是否已删除
使用 getfacl 查看当前文件的 ACL 状态:
getfacl 文件名
执行删除操作后,再次运行此命令,确认相关 ACL 条目已不存在。
基本上就这些。只要用好 setfacl -x 和 setfacl -b,就能灵活管理 ACL 权限的删除。注意备份重要权限设置,避免误删影响系统安全策略。


