ACL是Linux中比传统UGO更精细的权限机制,通过为特定用户或组单独授权,解决多租户场景下同目录数据隔离难题,无需频繁建组,支持默认ACL自动继承,兼顾安全与运维效率。

ACL(Access Control List,访问控制列表)是Linux中比传统UGO权限更精细的文件权限管理机制,特别适合多租户服务器场景——当多个用户或业务团队共享同一台服务器,又需严格隔离各自数据时,ACL能实现“同目录下不同用户读写互不干扰”,且无需为每个租户单独建用户组或调整主属组逻辑。
为什么传统权限在多租户中不够用?
标准Linux文件权限(rwx for user/group/others)仅支持一个属主、一个属组和一个“其他”类别。若A租户和B租户都需要访问/srv/app-data,但彼此数据不可见: - 仅靠chmod + chown无法同时满足“A可读写自己的子目录、B不可访问,B可读写自己的子目录、A不可访问”; - 若统一设为750并把双方加入同一组,则组内成员默认可互相读取,违背隔离原则; - 频繁切换属组或创建大量专用组,运维成本高、易出错。
ACL通过为特定用户或组单独授权,绕过“单组限制”,让权限策略更贴近实际租户边界。
用setfacl实现租户级目录隔离(实操步骤)
假设服务器上有两个租户:tenant-a 和 tenant-b,共用根数据目录 /srv/multi-tenant,要求: - 每个租户只能访问自己名下的子目录(如/srv/multi-tenant/tenant-a); - 租户目录内新建文件自动继承租户权限; - 管理员(如root或admin用户)仍保有完全访问权。
-
1. 创建租户目录并设置基础权限
mkdir -p /srv/multi-tenant/{tenant-a,tenant-b}
chmod 755 /srv/multi-tenant(保证父目录可遍历) -
2. 为各租户设置独立ACL规则
setfacl -m u:tenant-a:rwx /srv/multi-tenant/tenant-a
setfacl -m u:tenant-b:rwx /srv/multi-tenant/tenant-b
同时屏蔽反向访问:
setfacl -m u:tenant-b:--- /srv/multi-tenant/tenant-a
setfacl -m u:tenant-a:--- /srv/multi-tenant/tenant-b -
3. 启用默认ACL(确保新文件自动继承)
setfacl -d -m u:tenant-a:rwx /srv/multi-tenant/tenant-a
setfacl -d -m u:tenant-b:rwx /srv/multi-tenant/tenant-b
默认ACL只影响新创建的文件/子目录,不影响已有内容。 -
4. 验证与调试
查看ACL: getfacl /srv/multi-tenant/tenant-a
测试租户a能否进入tenant-b目录:sudo -u tenant-a ls /srv/multi-tenant/tenant-b → 应报“Permission denied”
关键注意事项与安全加固点
ACL不是万能补丁,部署时需配合系统级约束:
- 文件系统必须支持ACL:ext4/xfs默认开启,但需确认挂载选项含acl(查看mount | grep "$(df . -P | tail -1 | awk '{print $1}')" );若无,需重新挂载:mount -o remount,acl /dev/sdXn
- 禁用“other”权限:租户目录的others位务必设为---(即chmod 750或700),否则ACL可能被绕过(POSIX ACL规范中,other权限仍生效)
- 避免ACL过度嵌套:对深层子目录重复设ACL会增加维护负担,优先在租户根目录设好default ACL,依赖继承机制
- 与SELinux/auditd联动:ACL管“能不能”,SELinux管“该不该”。生产环境建议启用SELinux enforcing模式,并为租户区域定义专用type(如tenant_data_t),形成双重防护
替代方案对比:ACL vs. 用户命名空间 vs. 容器
ACL适用于轻量、宿主共享型多租户(如SaaS后台共用跳板机、中小客户共用分析平台)。它不改变进程上下文,零性能损耗,但隔离粒度止于文件路径。
- 用户命名空间(userns):可实现UID映射隔离,但需应用适配,且内核版本要求高(≥4.12),调试复杂
- 容器(Docker/Podman):隔离最强,但资源开销大,不适合纯文件共享类场景(如NFS导出多租户静态资源)
- ACL是平衡点:实施快、兼容性好、审计清晰(getfacl输出即策略文档),适合80%的中小规模多租户文件隔离需求

















