用 setfacl 与 getfacl 为用户单独授权
使用 POSIX ACL 给单个用户授予读/执行权限,而不改变文件的属主、属组以及其他人依赖的 755 权限位。
执行 setfacl -m u:deploy:rx /var/www/app 即可让 deploy 用户获得读+执行权限;执行 getfacl /var/www/app 可查看结果 ACL。
01命令
命令
$ setfacl -m u:deploy:rx /var/www/app
getfacl /var/www/app02作用说明
访问控制列表扩展了经典的属主/属组/其他人模型:setfacl -m 添加一条给指定用户(u:name)或组(g:name)授权的条目,getfacl 则打印完整生效的 ACL。它优雅地解决了“用户 X 需要访问权限,但改属组又会破坏其他东西”的常见难题。修改后 ls -l 的权限位末尾会出现 + 号,表示存在扩展条目。
03风险
!注意: 文件系统未以 acl 选项挂载时 ACL 会被静默忽略;rsync/tar 需加相应参数(--acls)才能保留 ACL,复制后请用 getfacl 核实。
04撤销
撤销
$ setfacl -x u:deploy /var/www/app05来源
- setfacl(1) — Linux manual page依据: setfacl man page: '-m, --modify=acl Modify the ACL of the file(s)' with u:uid:perms entry syntax.
- Debian Wiki: ACL依据: Documents installing the acl package and the default-ACL feature for new files in a directory.
最后验证: 2026-09-17 · 分类: 安全与隐私