使用 setfacl 为开发人员精准授权:先确认目录和用户存在,执行 setfacl -m u:dev01:rwx /data/db-dump 赋予读写执行权限,并用 setfacl -d -m u:dev01:rwx 启用默认 acl 实现新文件自动继承。

给测试环境数据库导出目录配置开发人员专属 ACL,核心是用 Linux 的 setfacl 命令实现“按人授权”,不改目录原有权限,也不依赖用户组大范围放权。重点在于精准控制读、写、执行权限,同时确保新文件继承相同 ACL 规则。
确认目标目录和用户存在
先检查导出目录路径(例如 /data/db-dump)是否真实存在,且开发人员账号(如 dev01)已在系统中创建:
- 运行
ls -ld /data/db-dump查看当前属主、属组和基础权限 - 用
id dev01确认该用户 UID 和所属主组,避免后续因用户不存在导致 ACL 设置失败 - 若目录属组不是开发常用组(如
devgroup),建议先统一归组便于后续管理,但非必须
设置用户级读写执行 ACL
对开发人员开放完整操作权限(含创建子目录、写入 dump 文件、执行脚本等),执行:
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
setfacl -m u:dev01:rwx /data/db-dump- 若需同时授权多个用户,可重复执行,或批量写成:
setfacl -m u:dev01:rwx,u:dev02:rwx /data/db-dump - 注意:
rwx中的x对目录表示“可进入”,对文件才表示“可执行”;这里赋予目录x是为了允许cd和访问子项
启用默认 ACL 实现新建文件自动继承
否则开发人员在该目录下新建的 SQL 文件或压缩包,会沿用基础 umask 权限(通常无写权限),其他开发无法协作修改。必须加默认 ACL:
setfacl -d -m u:dev01:rwx /data/db-dump- 这条命令只影响今后在此目录下创建的新文件/子目录,不影响已有内容
- 验证是否生效:运行
getfacl /data/db-dump,应看到default:user:dev01:rwx行
验证与日常维护要点
ACL 配置后别跳过验证步骤:
- 切换到
dev01用户:sudo -u dev01 bash,尝试touch /data/db-dump/test.sql、ls -l /data/db-dump、rm test.sql - 用
getfacl /data/db-dump检查输出中是否同时包含user:dev01:rwx和default:user:dev01:rwx - 定期清理失效 ACL:若某开发离职,及时执行
setfacl -x u:dev01 /data/db-dump删除其条目,避免权限残留










