linux acl功能必须通过挂载选项显式启用:先用mount | grep "$(df . | tail -1 | awk '{print $1}')" | grep acl确认是否已启用,未启用则临时执行sudo mount -o remount,acl /shared或永久修改/etc/fstab追加acl选项并重挂载。

在 Linux 中,ACL(访问控制列表)功能必须通过文件系统挂载选项显式启用,仅内核支持或安装 acl 工具包并不足够。关键在于挂载时带上 acl 选项。
确认目标分区是否已启用 acl 挂载选项
运行以下命令检查当前挂载状态:
mount | grep "$(df . | tail -1 | awk '{print $1}')" | grep acl
若输出中包含 acl(例如 rw,relatime,acl),说明已启用;若无输出,则需手动添加。
临时启用 acl(重启后失效)
对指定挂载点执行重挂载:
- 例如,为
/shared启用:sudo mount -o remount,acl /shared - 若要作用于根分区:sudo mount -o remount,acl /
永久启用 acl(推荐用于生产环境)
编辑 /etc/fstab,找到对应分区行,在第四列(挂载选项字段)追加 acl:
修改前(示例):
UUID=abc123 /shared ext4 defaults 0 2
修改后:
UUID=abc123 /shared ext4 defaults,acl 0 2
保存后执行:sudo mount -o remount /shared 即可生效。
验证是否真正启用
启用后创建一个测试目录并设置 ACL:
- mkdir /tmp/test-acl && setfacl -m u:$(whoami):r-x /tmp/test-acl
- 再运行 getfacl /tmp/test-acl,若输出中出现
user:用户名:r-x行,且权限末尾显示+(如drwxr-xr-x+),即表示成功启用。











