setfacl -x 用于删除指定的 ACL 条目,如 setfacl -x u:testuser file.txt 移除用户权限,setfacl -x g:group1 /path/to/dir 移除组权限,支持批量删除多个条目,操作前建议用 getfacl 查看当前 ACL 配置。

setfacl -x 命令用于从文件或目录中删除指定的 ACL(访问控制列表)条目。它不会影响默认的 ACL 或其他已设置的权限,只移除你明确指定的用户或组的访问规则。
删除特定用户的 ACL 权限
如果你想移除某个用户对文件的 ACL 控制权限,可以使用 -x 参数并指定用户名。
- 先设置一个用户 testuser 对 file.txt 的读写权限:
setfacl -m u:testuser:rw file.txt
- 然后使用 -x 移除该用户的 ACL:
setfacl -x u:testuser file.txt
执行后,testuser 的 ACL 条目会被删除,但文件本身的其他权限不受影响。
删除特定组的 ACL 条目
你可以用类似方式移除某个组的 ACL 设置。
- 给 group1 添加对 dir/ 目录的读执行权限:
setfacl -m g:group1:rx /path/to/dir
- 之后移除这个组的 ACL:
setfacl -x g:group1 /path/to/dir
这样 group1 的额外 ACL 规则就被清除了。
批量删除多个 ACL 条目
-x 支持一次删除多个指定的 ACL 条目,只需列出多个条目即可。
setfacl -x u:testuser,g:group1,others file.txt
这条命令会同时移除 testuser 用户、group1 组以及 others 的 ACL 条目(如果存在)。注意:others 不是标准 ACL 中必须存在的项,但有时会被显式设置。
查看当前 ACL 配置
在删除前建议先查看当前文件的 ACL 情况:
getfacl file.txt
输出中会显示所有用户和组的权限设置,方便你确认要删除哪一项。
基本上就这些。使用 setfacl -x 能精准去掉不需要的 ACL 规则,避免权限混乱。操作前查看当前状态更安全。


