我正在尝试使用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) 权限(这是由于它是目录)。