直接用 setfacl -m g:组名:权限 命令可为指定用户组添加 ACL 权限,无需改动文件属组;需确保文件系统启用 acl 支持,支持递归设置(-R)和默认 ACL(-d),用 getfacl 验证、setfacl -x 或 -b 清理。

直接用 setfacl -m g:组名:权限 命令即可为指定用户组添加 ACL 权限,无需改动文件属组或影响其他用户。
确认前提条件
确保文件系统已启用 ACL 支持:
- 运行
mount | grep "$(df . | tail -1 | awk '{print $1}')"查看当前挂载是否含acl选项 - 若无,临时启用:
sudo mount -o remount,acl /path/to/mount - 永久生效需编辑
/etc/fstab,在对应分区 options 字段追加acl(如defaults,acl)
为组设置基础 ACL 权限
语法统一为 setfacl -m g:组名:权限 目标文件或目录,权限用 r、w、x 组合,注意大小写含义:
-
setfacl -m g:devs:rx script.sh→ 给 devs 组对脚本的读+执行权限 -
setfacl -m g:qa:rwX tests/→X(大写)表示“仅对目录或已有执行位的文件加 x”,适合目录批量授权 - 组名含空格或特殊字符时加引号:
setfacl -m "g:app testers":r log.txt
递归设置与默认 ACL(针对目录)
若要让整个目录树或未来新建内容也生效,需配合额外选项:
- 递归应用到现有全部子项:
setfacl -Rm g:backup:rx /data - 设置默认 ACL(仅对目录有效),使新创建的文件/子目录自动继承:
setfacl -m d:g:backup:r-x /data - 可同时设访问 ACL 和默认 ACL:
setfacl -m g:backup:rx -m d:g:backup:r-x /data
验证与清理
设置后建议立即检查效果:
- 查看完整 ACL 列表:
getfacl filename,输出中出现g:组名:权限即成功 - 权限列末尾带
+(如drwxr-xr-x+)说明存在 ACL 条目 - 删除某组的 ACL:
setfacl -x g:组名 file - 清空所有 ACL(保留基础 u/g/o 权限):
setfacl -b file


















