当前位置:首页>Linux>linux文件系统acl权限控制操作指导 linux acl配置 linux用户权限详细配置

linux文件系统acl权限控制操作指导 linux acl配置 linux用户权限详细配置

  • 2026-10-11 08:10:20
linux文件系统acl权限控制操作指导 linux acl配置 linux用户权限详细配置

当传统Linux 权限无法满足复杂需求时,ACL(访问控制列表)就像给你的文件系统装上了"精密权限调节器"!本文将带你深入ACL的奇妙世界,从基础概念到实战应用,从权限继承到最佳实践,全方位掌握这个强大的权限管理工具。无论你是需要多用户协作的精细权限控制,还是面对特殊权限需求,ACL都能成为你的得力助手。

一、ACL基础概念

1.1、为什么需要 ACL

传统 Unix 权限(user/group/others)的局限性:

l只能设置一个所有者和一个所属组

l无法为多个用户或组设置不同权限

l权限控制粒度不够细

ACL 解决了这些问题,允许:

l为多个用户设置权限

l为多个组设置权限

l设置默认权限(对目录中新创建的文件)

1.2、ACL 相关命令

lgetfacl-查看 ACL 权限

lsetfacl-设置 ACL 权限

二、安装 ACL 工具(setfacl/getfacl)

# CentOS/RHEL/Almalinux/Rockylinux

yum install -y acl

# Debian/Ubuntu

apt install -y acl

三、启用ACL支持(仅针对ext4/ext3文件系统,XFS文件系统默认启用,不需要此操作)

2.1、检查文件系统是否支持 ACL

mount | grep acl

如果输出中没有 acl,需要重新挂载文件系统:

mount -o remount,acl /

2.2、永久启用 ACL

编辑 /etc/fstab,在挂载选项中添加 acl:

/dev/vg_data/lv_data /os_data xfs defaults,acl 0 0

然后重新挂载:

mount -o remount /os_data

四、ACL权限管理

3.1 查看 ACL 权限

3.2 设置 ACL 权限

基本语法:setfacl [选项] 规则 文件

常用选项:

l-m:修改 ACL 权限

l-x:删除 ACL 条目

l-b:删除所有 ACL 条目

l-R:递归操作

l-d:设置默认 ACL(仅对目录有效)

为用户设置权限:

setfacl -m u:用户名:权限 文件名

setfacl -m u:eda:rwx /project//eda用户读写权限

setfacl -m u:ana_uer1:--- /project//禁止ana_uer1用户访问

为组设置权限:setfacl -m g:组名:权限 文件名

setfacl -m g:admin:rwx /project/admin组读写权限

setfacl -m g:dig:--- /project//禁止dig组访问

设置有效权限掩码:setfacl -m m::权限 文件名

setfacl -m m::r-x /project

3.3 删除 ACL 权限

删除特定条目:

lsetfacl -x u:用户名 文件名
lsetfacl -x g:组名 文件名

删除所有 ACL 权限:

lsetfacl -b 文件名

五、默认ACL(继承权限)

5.1 设置默认 ACL

lsetfacl -d -m u:用户名:权限 目录名
lsetfacl -d -m g:组名:权限 目录名
setfacl -d -m u:eda:rwx /project
setfacl -d -m g:dig:--- /project

5.2 查看默认 ACL

lgetfacl -d 目录名

六、递归设置ACL

6.1 递归设置现有文件

setfacl -R -m u:用户名:权限 目录名

setfacl -R -m u:eda:rwx /project

setfacl -R -m g:dig:--- /project

6.2 递归设置默认 ACL

setfacl -d -R -m u:用户名:权限 目录名

setfacl -d -R -m u:eda:rwx /project

setfacl -d -R -m g:dig:--- /project

七、ACL权限示例

7.1 典型应用场景:共享目录管理

# 创建共享目录

mkdir /project/prjAA

chmod 770 /project/prjAA

# 设置组所有权

chown :admin /project/prjAA

# 设置ACL允许特定用户访问

setfacl -m u:eda:rwx /project/prjAA 

# 设置默认ACL(新创建的文件继承)

setfacl -d -m g:admin:rwx /project/prjAA

八、ACL与传统权限的关系

8.1、权限计算顺序

1.如果用户是文件所有者,应用 owner 权限

2.否则,检查用户是否有 ACL 条目,应用匹配的 ACL 权限

3.否则,检查用户是否在文件的所属组中:

l如果有 ACL 组条目,应用 ACL 组权限

l否则应用传统 group 权限

4.最后应用 other 权限

8.2 、mask 的作用

1.mask 定义了用户和组的最大有效权限

2.无论用户或组被授予什么权限,最终权限是与 mask 的 AND 操作结果

3.设置 mask:setfacl -m m::rwx file

九、ACL备份与恢复

9.1、备份 ACL

getfacl -R /path/to/dir > acl_backup.txt

9.2、恢复 ACL

setfacl --restore=acl_backup.txt

十、最佳实践

1.合理规划权限:避免过度授权

2.使用组而非用户:尽量通过组来管理权限

3.结合默认ACL:对目录设置合理的默认ACL

4.定期审计:检查重要目录的ACL设置

5.文档记录:记录重要的ACL设置及其原因

6.测试验证:设置后验证权限是否按预期工作

最新文章

随机文章