setfacl 无临时关闭 acl 的开关,需用 -x 选项移除用户 acl 条目以恢复默认权限控制;操作前用 getfacl 确认条目,注意区分普通与默认 acl,并留意 mask 对实际权限的影响。

在 Linux 中,setfacl 本身没有“临时关闭”ACL 权限的开关式命令,但可以通过移除该用户的 ACL 条目来实现等效效果——即让该用户恢复到仅受文件默认权限(owner/group/others)控制的状态。这本质上是“撤销”而非“禁用”,但行为上就是暂时失去 ACL 赋予的额外访问权。
确认当前 ACL 设置
操作前先查看目标文件或目录的现有 ACL,避免误删其他条目:
getfacl /path/to/file
重点关注输出中类似 user:username:rwx 的行,确认你要移除的是哪个用户及其权限。
移除指定用户的 ACL 条目
使用 -x(exclude)选项精准删除某用户的 ACL 记录:
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
-
删除单个用户的 ACL:
setfacl -x u:username /path/to/file -
批量删除多个用户:
setfacl -x u:user1,u:user2 /path/to/file -
删除目录及所有子项中该用户的 ACL(递归):
setfacl -R -x u:username /path/to/dir
执行后,该用户将不再享有 ACL 特殊权限,只遵循文件基础权限(如 -rw-r--r-- 中的 group 或 others 部分)。
注意默认 ACL 和 mask 的影响
若目标是目录且设置了默认 ACL(default:user:...),仅用 -x u:... 不会删除默认条目,需显式指定:
- 删除默认 ACL 中的用户:
setfacl -x d:u:username /path/to/dir - 检查 mask 是否限制了实际生效权限:运行
getfacl查看mask::行;如果 mask 权限比用户 ACL 弱(如用户有rwx但 mask 是r--),则用户实际只有r权限。此时移除用户 ACL 后,mask 通常自动调整,无需手动干预。
需要时可快速恢复 ACL
ACL 移除后,如需重新授权,直接用 -m 添加即可:
setfacl -m u:username:rw /path/to/file
没有备份机制,所以关键场景建议提前用 getfacl /path > acl_backup.txt 记录原始配置。










