我正将一个目录结构从UFS文件系统迁移到ZFS。 在旧的位置我有POSIX ACL设置强制所有结构中的新文件/目录创build组写权限 –
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---AW-Co-:------:allow group@:--------------:------:deny group@:rwxp----------:------:allow everyone@:rwxp---AW-Co-:------:deny everyone@:------aRc--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---AW-Co-:------:allow group@:-wp----------:------:deny group@:rx-----------:------:allow everyone@:-wp---AW-Co-:------:deny everyone@:rx---aRc--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---AW-Co-:------:allow group@:-wxp----------:------:deny group@:r-------------:------:allow everyone@:-wxp---AW-Co-:------:deny everyone@:r-----aRc--s:------:allow
我可以通过将umask设置为002来解决这个问题,但是我想知道是否有纯粹的ACL方式(因为当前安装的FTP和SSH版本不允许在每个用户的基础上设置umask)。
我使用类似下面的东西来为我的无密码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也更新,所以这可能会让系统pipe理员哭泣。 它还充当chmod 2774 ,并将新文件“/目录”组设置为数据集的组。
编辑澄清一下: /zfs/raid1是实际的ZFS挂载, storage是其中的一个数据集。