Linux中启用ACL的关键是文件系统挂载时添加acl选项,需通过mount -o remount,acl临时启用或修改/etc/fstab永久启用,并确认ext4/xfs等本地文件系统支持且非NFS/tmpfs等不支持场景。

在 Linux 中启用 ACL,关键不是“磁盘”,而是**文件系统挂载时开启 acl 选项**。ACL 是挂载行为决定的功能,和底层磁盘设备无关,只与 ext4、xfs 等支持 ACL 的本地文件系统相关。
确认目标分区是否支持 ACL
先查清你要操作的挂载点对应哪个设备:
- 运行 df -h /path(把
/path换成你的目录,如/home),看它属于哪个设备(如/dev/sdb1) - 再执行 dumpe2fs -h /dev/sdb1 | grep "Default mount options",输出中含
acl表示内建支持;若无,说明需手动启用
临时启用:remount 加 acl
无需重启,立即生效:
- 执行 mount -o remount,acl /mount/point(例如
mount -o remount,acl /home) - 验证:运行 mount | grep " /mount/point ",输出中应出现
acl字样(注意前后空格)
永久启用:修改 /etc/fstab
编辑 /etc/fstab,找到对应挂载项那一行:
- 原内容类似:
UUID=xxx /home ext4 defaults 0 2 - 改为:
UUID=xxx /home ext4 defaults,acl 0 2(defaults和acl之间用英文逗号分隔,不能有空格) - 修改前建议备份:cp /etc/fstab /etc/fstab.bak
- 保存后执行 mount -o remount /home 让新配置生效
注意事项
以下情况 ACL 不起作用:
- NFS、tmpfs、proc、sysfs 等非本地文件系统不支持 acl 选项,加了也忽略或报错
- 即使 fstab 改了,没执行
mount -o remount,旧挂载仍不识别 ACL - 某些极简系统或旧内核可能未编译 ACL 支持,此时
dumpe2fs不显示 acl,且mount -o remount,acl会失败


















