最直接有效的方式是使用 setfacl -m u:用户名:---,可精准剥夺用户对文件或目录的所有访问权限且优先级高于传统权限;需确保文件系统支持acl、操作者有足够权限、acl工具已安装。

在 Linux 中,用 ACL 限制特定用户访问权限最直接有效的方式是使用 setfacl -m u:用户名:---,它能精准剥夺该用户对目标文件或目录的所有访问能力,且优先级高于传统权限。
确认前提条件
操作前需确保:
- 文件系统支持并已启用 ACL(如 ext4、xfs),可通过
mount | grep "$(df . | awk 'NR==2 {print $1}')" | grep acl验证; - 你拥有足够权限(通常是 root 或文件属主);
- ACL 工具已安装(多数发行版默认自带,否则用
sudo apt install acl或sudo yum install acl安装)。
禁止单个用户访问
执行以下命令即可彻底阻止某用户读、写、执行(含进入目录):
sudo setfacl -m u:unwanted_user:--- /path/to/target
例如禁止用户 guest01 访问 /var/confidential:
sudo setfacl -m u:guest01:--- /var/confidential
设置后,ls -l 显示权限末尾会出现 +,表示 ACL 生效;用 getfacl /path/to/target 可看到 user:guest01:--- 条目。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
让禁止规则自动继承到新建子项
若希望该限制长期生效(包括未来创建的文件和子目录),需添加默认 ACL:
sudo setfacl -d -m u:guest01:--- /var/confidential
注意:默认 ACL 不影响已有内容,只作用于后续新建项;删除默认规则用 sudo setfacl -k /var/confidential。
验证与清理
验证是否生效:
- 切换至被限制用户:
su - guest01,再尝试ls /var/confidential或cat /var/confidential/file.txt,应提示 Permission denied; - 用
getfacl /var/confidential确认存在对应user:guest01:---和(如有)default:user:guest01:---行。
如需恢复,可删除该用户的 ACL 条目:sudo setfacl -x u:guest01 /var/confidential;清空全部扩展 ACL(保留基础权限):sudo setfacl -b /var/confidential。










