Linux ACL 权限

发布时间:2026/6/2 3:52:36

Linux ACL 权限 一、基础概念全称ACLAccess Control List访问控制列表核心作用突破传统u(属主)/g(属组)/o(其他人)三类权限限制给多个独立用户 / 组单独分配权限无需修改文件原有属主、属组实现精细化权限管控。识别标识执行ls -l权限串末尾出现代表该文件 / 目录已配置 ACL。使用前提文件系统需支持 ACLCentOS 默认ext4已开启可直接使用。权限优先级ACL 权限 传统 UGO 权限二、两大核心命令1. getfacl 【查看 ACL 权限】只查看、不修改基础用法简单。常用参数表格参数作用无参数查看单个文件 / 目录 ACL 详情-R递归查看目录及所有子文件、子目录-t简洁格式输出示例# 查看单个文件 getfacl /var/log/app.log # 递归查看整个目录 getfacl -R /var/log输出字段解读user::rw- # 文件原有属主权限 user:mongodb:r-- # ACL额外授权mongodb 用户只读 group::r-- # 文件原有属组权限 mask::r-- # 权限掩码ACL最大权限上限 other::r-- # 原有其他用户权限2. setfacl 【增 / 改 / 删 ACL 权限】核心命令工作高频使用分 6 个常用参数。通用规则格式固定写法符号必须是英文冒号不能加多余空格u:用户名:权限 # 给指定用户授权 g:组名:权限 # 给指定组授权 m::权限 # 修改 mask 掩码权限组合r--(只读)、rw-(读写)、r-x(读 执行)、rwx(全部权限)能改的 5 种核心权限类型类型前缀作用语法示例用户权限u:给指定用户加权限u:用户名:rw-组权限g:给指定组加权限g:组名:r-x其他权限o:改所有其他用户权限o::r--权限掩码m:限制 ACL 最大有效权限m:rwx默认 ACLd:新文件自动继承 ACLd:u:test:rwx常用参数详解重点记忆1-m新增 / 修改 ACL 规则最常用作用规则不存在则新增已存在则覆盖不影响其他 ACL 条目语法setfacl -m 规则 文件/目录示例# 给 mongodb 用户设置只读 setfacl -m u:mongodb:r-- /var/log/app.log # 给用户设置读写 setfacl -m u:mongodb:rw- /var/log/app.log # 同时给多个用户/组授权逗号分隔 setfacl -m u:mongodb:r--,g:test:r-x /var/log/app.log2-x删除单条ACL 规则作用仅删除指定用户 / 组的 ACL其余规则保留⚠️ 关键后面只写用户名 / 组名不能加权限语法setfacl -x u:用户名 / g:组名 文件示例# 删除 mongodb 用户的 ACL 权限 setfacl -x u:mongodb /var/log/app.log3-b清空全部ACL 规则作用删除所有扩展 ACL恢复为原生传统权限示例# 清空单个文件所有ACL setfacl -b /var/log/app.log # 递归清空目录所有ACL setfacl -R -b /var/log4-R递归生效作用搭配其他参数对目录下所有子文件、子目录统一应用规则示例# 递归给目录下所有文件添加权限 setfacl -R -m u:mongodb:r-- /var/log5-d设置默认 ACL仅目录生效作用目录配置后后续新建的文件 / 子目录会自动继承该 ACL 规则权限自动继承常和-R搭配同时作用于现有文件 未来新文件示例# 给目录设置默认ACL新文件自动继承权限 setfacl -d -m u:mongodb:r-- /shared # 递归默认ACL现有未来文件全部生效 setfacl -R -d -m u:mongodb:r-- /shared6-k删除默认 ACL作用取消目录的权限继承规则setfacl -k /shared三、Mask 权限掩码必考点作用限制所有 ACL 用户 / 组的最大有效权限上限例用户授权rwx但 mask 为r--最终用户仅拥有只读权限。查看getfacl 文件名 | grep mask修改setfacl -m m::rwx AAA/BBBsetfacl -m m::r-x /var/log/app.log四、工作高频使用场景日志授权给服务账号、监控账号分配日志只读权限日常最常用团队共享目录不同岗位开发 / 测试分配不同权限不改动原有属主属组目录权限继承共享目录配置默认 ACL新文件自动沿用权限减少重复操作临时授权临时给用户开通权限使用完毕可单独撤销安全灵活五、高频易错点避坑总结执行命令前用户名 / 组名必须在系统中存在否则直接报错。分隔符必须用英文冒号中文冒号会触发参数错误。使用-x删除规则时禁止添加 r/w/x 权限。-d默认 ACL只对目录生效普通文件无法使用。区分删除指令-x只删单条 ACL-b清空全部 ACL传统特殊权限SUID/SGID/Sticky和 ACL 可共存互不影响。六、传统权限 vs ACL 极简对比表格对比项传统 chmod/chownACL管控对象仅 属主、属组、其他人 3 类支持无限个用户 / 组精准授权权限继承无原生继承支持默认 ACL自动继承适用场景简单单机、单一用户场景多团队、多租户、精细化权限场景七、ACL 典型应用场景工作实战版前置说明传统chmod/chown只能对属主、属组、其他用户三类角色统一授权当出现多用户、多角色、差异化权限、不能改动原有属主 / 属组需求时优先使用 ACL。场景 1日志文件授权★★★★★ 最高频运维 / SRE 日常必备适用场景系统日志、应用日志/var/log目录下文件文件默认属主 / 属组为root。需要给监控账号、应用服务账号如 mongodb、nginx开放只读权限不允许修改、删除日志且不能改动文件原有归属。解决问题不让普通账号获得文件属组 / 属主权限仅开放最小访问权限保障日志安全。实操命令# 给 mongodb 用户授权日志只读 setfacl -m u:mongodb:r-- /var/log/app.log # 批量给目录下所有日志文件授权递归 setfacl -R -m u:mongodb:r-- /var/log/ # 用完撤销单条权限 setfacl -x u:mongodb /var/log/app.log场景 2团队共享目录★★★★☆ 开发 / 测试协作常用适用场景多人共用同一个业务目录不同岗位权限不同开发人员读写执行可新建、修改文件测试人员仅读 执行只能查看、进入目录不能修改普通成员仅只读解决问题不用频繁修改目录属组实现一人一权、一组一权权限划分更精细。实操命令# 开发用户 dev01 读写执行 setfacl -m u:dev01:rwx /project/share # 测试组 test 只读执行 setfacl -m g:test:r-x /project/share场景 3目录权限自动继承★★★★ 长期共享目录标配适用场景共享目录内会频繁新建文件、子目录希望新文件自动沿用预设权限不用每次手动配置 ACL。注意-d默认 ACL仅对目录生效。解决问题减少重复配置权限的工作量统一目录下所有文件权限规则。实操命令# 1. 设置默认ACL未来新建文件自动继承 setfacl -d -m u:dev01:rwx /project/share # 2. 递归默认ACL现有文件 未来新文件 全部生效 setfacl -R -d -m u:dev01:rwx /project/share # 取消权限继承规则 setfacl -k /project/share场景 4临时人员 / 外部账号短期授权★★★☆ 临时协作场景适用场景临时同事、第三方对接人员需要短期访问服务器文件 / 目录权限仅临时开放结束后彻底回收。解决问题不用新建专属用户组、不用改动原有权限授权灵活、回收干净。实操命令# 临时用户 temp 只读访问 setfacl -m u:temp:r-- /data/file.txt # 工作结束单独删除该用户权限不影响其他ACL setfacl -x u:temp /data/file.txt场景 5多租户服务器权限隔离★★★ 多业务部署场景适用场景一台服务器部署多个独立业务每个业务有专属运行账号要求各业务账号只能访问自己的业务目录无法查看、修改其他业务的文件管理员拥有全部权限解决问题在同一服务器上实现业务隔离遵循最小权限原则规避越权访问风险。场景 6与特殊权限组合使用进阶组合企业生产常用结合你之前学的SGID、Sticky 粘滞位搭配 ACL 做复合型权限管控是生产目录标准配置组合 1共享目录 SGID ACLSGID目录内新建文件自动继承目录属组ACL再给个别用户单独分配差异化权限适用大型团队长期共享目录组合 2公共目录 Sticky ACLSticky粘滞位所有人只能删除自己的文件防止误删他人文件ACL精细化分配读写权限典型案例公共上传目录、临时文件目录示例命令# 1. 先给目录加粘滞位防误删 chmod ot /public # 2. 再用ACL给指定用户授权读写 setfacl -m u:user01:rw- /public场景 7整体权限重置收尾 / 故障恢复适用场景目录 / 文件 ACL 规则过多、权限混乱需要一次性清空所有扩展权限恢复为系统原生ugo权限。实操命令# 清空单个文件所有ACL setfacl -b /var/log/app.log # 递归清空整个目录所有ACL setfacl -R -b /var/log/补充判断口诀简单权限、单用户 / 单组→ 只用chmod / chown传统权限多用户、多角色、权限不一样→ 必用ACL共享目录 新建文件多→ ACL 默认权限-d公共目录怕误删→ Sticky 粘滞位 ACL团队共享要统一属组→ SGID ACL高频场景精简汇总看日志、给服务账号授权→ 最常用单条 ACL 授权多人共享、权限不同→ 基础 ACL 分角色授权频繁新建文件→ 加-d设置默认 ACL自动继承临时访问→ 临时加 ACL用完-x单独删除权限混乱重置→ 用-b清空全部 ACL公共目录防误删→ Sticky ACL 组合使用

相关新闻