ZFS - 使用纯 ACL 强制继承组写权限

ZFS - 使用纯 ACL 强制继承组写权限

我正在将目录结构从 UFS 文件系统迁移到 ZFS。在旧位置,我已将 POSIX ACL 设置为强制使用组写入权限创建结构中的所有新文件/目录 -

group::rwx
default:group::rwx

在新的 ZFS 文件系统上,我尝试使用设置了“file_inherit/dir_inherit”标志的 NFSv4 ACL 来复制此操作,但发现这些标志已被删除(或者在目录的情况下,被设置了“inherit_only”的 ACE 替换),因此组中的其他用户在新目录中具有写权限。例如:

$ chmod A+group@:rwxp:fd:allow .
$ ls -Vd .
drwxrws---+  6 user1    grp1         13 Nov  8 12:55 .
            group@:rwxp----------:fd----:allow
            owner@:--------------:------:deny
            owner@:rwxp---A-W-Co-:------:allow
            group@:--------------:------:deny
            group@:rwxp----------:------:allow
         everyone@:rwxp---A-W-Co-:------:deny
         everyone@:------a-R-c--s:------:allow
$ mkdir test
$ ls -Vd test
drwxr-sr-x+  2 user1    grp1          2 Dec  1 14:24 test
            group@:rwxp----------:fdi---:allow
            group@:--------------:------:allow
            owner@:--------------:------:deny
            owner@:rwxp---A-W-Co-:------:allow
            group@:-w-p----------:------:deny
            group@:r-x-----------:------:allow
         everyone@:-w-p---A-W-Co-:------:deny
         everyone@:r-x---a-R-c--s:------:allow
$ touch afile
$ ls -V afile
-rw-r--r--+  1 user1    grp1          0 Dec  1 14:40 afile
            group@:--------------:------:allow
            owner@:--x-----------:------:deny
            owner@:rw-p---A-W-Co-:------:allow
            group@:-wxp----------:------:deny
            group@:r-------------:------:allow
         everyone@:-wxp---A-W-Co-:------:deny
         everyone@:r-----a-R-c--s:------:allow

我可以通过将 umask 设置为 002 来解决这个问题,但我想知道是否存在纯 ACL 方式(因为当前安装的 FTP 和 SSH 版本不允许根据每个用户设置 umask)。

答案1

我使用类似下面的方法进行无密码 NAS 存储。我不太熟悉所有细粒度的权限,因此对于所有者/组权限来说可能有点过分,而对于所有人来说可能又不够,但下面就是我的设置:

setfacl -m owner@:full_set:fd:allow /zfs/raid1/storage
setfacl -m group@:full_set:fd:allow /zfs/raid1/storage
setfacl -m everyone@:rx:fd:allow /zfs/raid1/storage

它运行在 FreeBSD 上,因此 ZFS 的 NFSv4 ACL 内置于 setfacl 中。我认为它们也可以在某些操作系统上位于 nfs4_setfacl 和 chmod 中。我对 ACL 非常陌生,对 FreeBSD 也更陌生,所以这一切可能会让系统管理员哭泣。它还充当并将chmod 2774新文件/目录的组设置为数据集的组。

编辑以澄清一点:/zfs/raid1是实际的 ZFS 挂载,storage是其中的数据集。

相关内容