一、什么是ACL?为什么要启用它?
ACL是Linux文件系统的扩展权限机制,默认的文件权限只能控制“所有者、所属组、其他人”三类用户,而ACL可以给特定用户或组单独设置权限(比如让用户小明访问文件,即使他不在所属组中)。
大部分现代Linux文件系统(如ext3、ext4、xfs)都支持ACL,但需要手动启用才能使用。
二、检查当前系统是否已启用ACL
首先,我们需要确认当前文件系统是否已经开启了ACL支持,步骤如下:
-
打开终端,输入以下命令查看文件系统挂载信息:
mount -
在输出结果中,找到你要启用ACL的文件系统(比如根目录
/或/home),查看挂载参数中是否包含acl。
示例输出(含acl表示已启用):/dev/sda1 on / type ext4 (rw,relatime,acl) # 这里的“acl”说明已启用
三、如果未启用ACL,手动开启的步骤
1. 临时启用ACL(重启后失效,适合测试)
如果挂载参数中没有acl,可以通过“重新挂载”文件系统临时启用ACL,命令格式:
sudo mount -o remount,acl 目标目录
- 示例:启用根目录
/的ACLsudo mount -o remount,acl / - 示例:启用
/home目录的ACLsudo mount -o remount,acl /home
执行后,再次用mount命令检查,会发现参数中已添加acl。
2. 永久启用ACL(重启后仍生效)
临时启用会在重启后失效,若要永久生效,需要修改系统的挂载配置文件/etc/fstab:
-
先获取文件系统的UUID(唯一标识),输入以下命令:
blkid找到目标目录对应的UUID(比如根目录
/对应的UUID="xxxx-xxxx-xxxx")。 -
编辑
/etc/fstab文件(需要管理员权限):sudo nano /etc/fstab # 用nano编辑器打开,也可以用vim -
在文件中找到目标目录的配置行,在挂载参数(通常是
defaults)后添加,acl。
示例(原配置):UUID=xxxx-xxxx-xxxx / ext4 defaults 0 0修改后(添加
,acl):UUID=xxxx-xxxx-xxxx / ext4 defaults,acl 0 0 -
保存并退出编辑器(nano按
Ctrl+O保存,Ctrl+X退出)。 -
使配置生效(无需重启):
sudo mount -a
四、验证ACL是否启用成功
配置完成后,用mount命令再次检查目标文件系统的挂载参数,若包含acl,则表示启用成功。
此时,你就可以使用setfacl(设置ACL权限)和getfacl(查看ACL权限)命令管理文件权限了。例如:
# 给用户“bob”设置对文件“test.txt”的读写执行权限
sudo setfacl -m u:bob:rwx test.txt
# 查看文件“test.txt”的ACL权限
getfacl test.txt
总结
启用ACL的核心步骤:
- 用
mount检查是否已启用ACL; - 临时启用:
sudo mount -o remount,acl 目录; - 永久启用:修改
/etc/fstab,添加acl参数后执行mount -a。
启用后,就能实现更灵活的权限控制,给特定用户或组单独授权啦!
















