ACL 继承仅在 zfs 上创建文件时进行吗?

ACL 继承仅在 zfs 上创建文件时进行吗?

我很难理解 ACL 在 ZFS 上的工作原理与在 Windows NTFS 系统上的工作原理有何不同。(特别是,我使用的是 TrueNAS 12。)

我创建了一个 SMB 共享(“smbtest”),并授予用户joe可继承的修改权限。然后,在该共享中,我触摸一个文件a,它看起来像这样:

root@nisaba[/mnt/Pool1/smbtest]# getfacl a
# file: a
# owner: root
# group: wheel
            owner@:rwxpDdaARWcCos:------I:allow
            group@:rwxpDdaARWcCos:------I:allow
          user:joe:rwxpDdaARWc--s:------I:allow
         everyone@:--------------:------I:allow

看起来很棒。

现在我返回 GUI 并授予用户mary可继承的修改权限。然后我触摸一个文件b,它看起来像这样:

root@nisaba[/mnt/Pool1/smbtest]# getfacl b
# file: b
# owner: root
# group: wheel
            owner@:rwxpDdaARWcCos:------I:allow
            group@:rwxpDdaARWcCos:------I:allow
          user:joe:rwxpDdaARWc--s:------I:allow
         user:mary:rwxpDdaARWc--s:------I:allow
         everyone@:--------------:------I:allow

很好。现在我们再看a一下:

root@nisaba[/mnt/Pool1/smbtest]# getfacl a
# file: a
# owner: root
# group: wheel
            owner@:rwxpDdaARWcCos:------I:allow
            group@:rwxpDdaARWcCos:------I:allow
          user:joe:rwxpDdaARWc--s:------I:allow
         everyone@:--------------:------I:allow

没有改变。这与我习惯的 SMB 共享工作方式之间存在重大差异。如果我在 Windows 服务器上执行此操作,在修改顶层目录的权限后smbtest,上的权限a将与上的权限相同b,因为对象上的权限是继承的。在 NTFS 中,继承不是一次性交易 - 并不是在创建对象时继承它们,而是在权限本质上与它们继承自的对象符号链接的意义上继承它们。

看来这里的情况并非如此?如果不是,解决方法是什么?当然,如果您有一个包含数千万个文件的共享,并且想要向其中添加新的 ACL 条目,那么您不必将该更改递归应用于数千万个文件,而是(如 NTFS 中的情况)仅应用于它们都动态继承的一个对象?

或者我做错了什么?

相关内容