如何在 ZFS 数据集上使用 setfacl 设置与 UNIX 样式 chmod 770 等效的功能?

如何在 ZFS 数据集上使用 setfacl 设置与 UNIX 样式 chmod 770 等效的功能?

我正在尝试使用setfacl设置不同 ZFS 数据集的权限,并且我希望这些 ACL 权限等同于 UNIX 风格chmod 770

什么setfacl命令可以完成此操作?getfacl如果我正确执行此操作,应该显示哪些 ACL?

我正在运行带有 Samba 4.6.4 的 FreeNAS 11.0。

答案1

注意:以下内容来自 Solaris 系统,但结果也适用于 BSD(需要使用getfacl/setfacl而不是ls/ chmod)。


新创建的(文本)的默认权限文件是:

   owner@:rw-p--aARWcCos:-------:allow
   group@:r-----a-R-c--s:-------:allow
everyone@:r-----a-R-c--s:-------:allow

如果你使用chmod 0770 /path/to/file,你将获得:

   owner@:rwxp--aARWcCos:-------:allow
   group@:rwxp--a-R-c--s:-------:allow
everyone@:------a-R-c--s:-------:allow

本质上,为所有者和组添加了执行 (x),从所有人中删除了读取 (r),并为组添加了写入 (w) 和附加 (p)。


为一个目录,如下所示:

   owner@:rwxp-DaARWcCos:-------:allow
   group@:r-x---a-R-c--s:-------:allow
everyone@:r-x---a-R-c--s:-------:allow

修改后:

   owner@:rwxp-DaARWcCos:-------:allow
   group@:rwxp-Da-R-c--s:-------:allow
everyone@:------a-R-c--s:-------:allow

这里,所有人的读取 (r) 和执行 (x) 权限都被删除,而所有者和组拥有与文件情况相同的权限,但增加了 delete_child (D) 权限(这是由于它是目录)。

相关内容