为 zfs 池 ubuntu 13.04 激活 ACL

为 zfs 池 ubuntu 13.04 激活 ACL

我已经在本地文件夹上测试了 ACL,并且运行良好。

但在我的 zfs 池上名为“tank”

根@数据中心:/mnt# ls
datatank 测试 webmin_1.650_all.deb
root@datacenter:/mnt# setfacl -mu:casper:rwx datatank
setfacl:datatank:操作不支持

如何为我的 zfs 系统添加 acl 支持?

怎么了 ?

答案1

使用

zfs set acltype=posixacl tank/datatank

答案2

我对 zfs 还很陌生,但我自己刚刚遇到过这个问题。

ZFS 有 2 个 ACL 属性:“aclinherit”&“acl模式”,虽然我无法让 aclmode 正常工作,但我认为它最近已被弃用。

此外,这两个属性有几种模式。

  • aclinherit:确定 ACL 继承的行为。值包括以下内容:

    • discard – 对于新对象,创建文件或目录时不会继承任何 ACL 条目。文件或目录上的 ACL 等于文件或目录的权限模式。
    • noallow – 对于新对象,仅继承访问类型为拒绝的可继承 ACL 条目。
    • restricted – 对于新对象,当继承 ACL 条目时,write_owner 和 write_acl 权限将被删除。

    • passthrough – 当属性值设置为 passthrough 时,文件将使用由可继承 ACE 确定的模式创建。如果不存在影响该模式的可继承 ACE,则将根据应用程序请求的模式设置模式。

    • passthrough-x – 具有与 passthrough 相同的语义,不同之处在于,当启用 passthrough-x 时,文件将使用执行 (x) 权限创建,但前提是在文件创建模式和影响该模式的可继承 ACE 中设置了执行权限。

  • acl模式:(再次强调,我无法让这个在我的版本上运行,所以要小心!)在文件首次创建时或通过 chmod 命令修改文件或目录的模式时修改 ACL 行为。值包括以下内容:

    • 丢弃 — 除定义文件或目录模式所需的条目之外,所有 ACL 条目都将被删除。

    • groupmask – 用户或组的 ACL 权限会降低,使其不大于组权限位,除非用户条目的 UID 与文件或目录的所有者相同。然后,​​ACL 权限会降低,使其不大于所有者权限位。

    • passthrough – 在 chmod 操作期间,除owner@、group@ 或everyone@ 之外的 ACE 不会以任何方式被修改。带有owner@、group@ 或everyone@ 的 ACE 被禁用,无法按照 chmod 操作的请求设置文件模式。

例如,您可以按如下方式为“tank/datatank”(不是您的挂载点,而是实际的池)设置 acl:

zfs set "ACL-PROPERTY"="ACL-MODE" tank/datatank

进一步来说

zfs set aclinherit=passthrough tank/datatank

资料来源:

http://docs.oracle.com/cd/E19120-01/open.solaris/817-2271/gbaaz/index.html

https://mywushublog.com/2012/05/zfs-and-acls-with-samba/

相关内容