我已经在本地文件夹上测试了 ACL,我工作得很好。
但是在我的名为“tank”的 zfs 池中
root@datacenter:/mnt# ls 数据槽测试 webmin_1.650_all.deb root@datacenter:/mnt# setfacl -mu:casper:rwx datatank setfacl:datatank:不支持操作
如何为我的 zfs 系统添加 acl 支持?
怎么了 ?
小智 15
用
zfs set acltype=posixacl tank/datatank
Run Code Online (Sandbox Code Playgroud)
小智 0
我对 zfs 相当陌生,但我自己刚刚经历过这个问题。
\n\nZFS 有 2 个 ACL 属性:"aclinherit"和"aclmode",虽然我一直无法让 aclmode 正常工作,但我认为它最近已被弃用。
\n\n此外,这 2 个属性有多种模式。
\n\naclinherit:决定 ACL 继承的行为。值包括以下内容:
\n\n受限 \xe2\x80\x93 对于新对象,继承 ACL 条目时将删除 write_owner 和 write_acl 权限。
passthrough \xe2\x80\x93 当属性值设置为 passthrough 时,将使用由可继承 ACE 确定的模式创建文件。如果不存在影响模式的可继承 ACE,则根据应用程序请求的模式设置模式。
passthrough-x \xe2\x80\x93 与 passthrough 具有相同的语义,只不过当启用 passthrough-x 时,将使用执行 (x) 权限创建文件,但前提是在文件创建模式中设置了执行权限,并且在影响模式的可继承 ACE。
aclmode:(再次,我无法让这个适用于我的版本,所以要小心!)在最初创建文件时或每当通过 chmod 命令修改文件或目录的模式时修改 ACL 行为。值包括以下内容:
\n\nDiscard \xe2\x80\x93 除定义文件或目录模式所需的条目外,所有 ACL 条目都将被删除。
groupmask \xe2\x80\x93 用户或组 ACL 权限被减少,以便它们不大于组权限位,除非它是与文件或目录所有者具有相同 UID 的用户条目。然后,减少 ACL 权限,使其不大于所有者权限位。
passthrough \xe2\x80\x93 在 chmod 操作期间,除owner@、group@ 或everyone@ 之外的ACE 不会以任何方式修改。具有owner@、group@ 或everyone@ 的ACE 被禁用以根据chmod 操作的请求设置文件模式。
例如,您可以通过以下方式为“tank/datatank”(不是您的安装点,而是实际的池)设置 acl:
\n\nzfs set "ACL-PROPERTY"="ACL-MODE" tank/datatank\n
Run Code Online (Sandbox Code Playgroud)\n\n进一步来说
\n\nzfs set aclinherit=passthrough tank/datatank\n
Run Code Online (Sandbox Code Playgroud)\n\n资料来源:
\n\nhttp://docs.oracle.com/cd/E19120-01/open.solaris/817-2271/gbaaz/index.html
\n\nhttps://mywushublog.com/2012/05/zfs-and-acls-with-samba/
\n