服务公告
用 acl 做精细化文件授权:超出 ugo 的权限
发布时间:2026-07-22 14:11
## 概念是什么 传统权限模型只有所有者、组、其他人三段,遇到多人协作目录就捉襟见肘:设计组与开发组都要写,其他人只读,一组却只能填一个。POSIX ACL 在此之上叠加了命名用户与命名组的权限条目,一个目录可以同时给若干用户与组各配各的权限,互不干扰。 ## 背后原理 ACL 是挂在文件扩展属性里的权限列表,每条指明某个用户或组的读、写、执行位。访问检查按序进行:所有者命中即止,否则查命名用户条目,再查所属组与命名组条目,最后落到其他人的掩码位。mask 是理解 ACL 的关键:它给全部命名条目封顶,chmod 修改组权限位时改的其实是 mask,权限莫名缩水多半是它。 ``` getfacl /data/project setfacl -m u:zhang:rw- /data/project/plan.txt setfacl -R -m g:design:rwx /data/project setfacl -R -m d:g:design:rwx /data/project ``` ## 最小实操 协作目录的标准配置两步:给已有文件递归授权,用 R 参数;给目录加默认 ACL,带 d 前缀,之后新建的文件自动继承权限,新人新文件不再需要手动放权。查看用 getfacl,输出比 ls 更完整,命名条目、mask、默认条目一目了然。 撤销指定条目用 x 参数,批量清空用 b 参数,清空后回到纯 ugo 模型。 ## 常见错误 编辑器与部分工具保存文件时用替换写,新文件绕过默认 ACL 继承,权限要靠协作脚本定期校正。root 也可能读不了 ACL 异常的文件,遇到时先查扩展属性与文件系统挂载选项是否支持。顺云云服务器多人共管目录用 ACL 落规则,配合审计日志,权限治理才有据可查。 与 setgid 目录位的配合是协作目录的标准组合:目录设 setgid 后新建文件自动继承目录的组,配合默认 ACL,新文件的用户与组权限都不再依赖创建者的默认值,这套组合是多团队共享目录的成熟方案。 审计与治理也别落下:定期导出关键目录的 ACL 清单存档,与审批记录比对,越权的授权早发现早收回。新人入组加权限、离组收权限走工单流,变更都有据可查。权限体系的腐化都是一点一点发生的,定期盘点是唯一的解药。上一篇: 服务器托管的机房等级怎么看
下一篇: 多线路接入说明:电信联通移动三网访问优化