使用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规则,只保留基本的用户、组和其他权限(即ugo权限),使用 -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权限的删除。注意备份重要权限设置,避免误删影响系统安全策略。


