我已经在本地文件夹上测试了 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