在 Linux 上将 netgroup 与 ZFS 结合使用的 sharenfs 语法是什么?

在 Linux 上将 netgroup 与 ZFS 结合使用的 sharenfs 语法是什么?

我正在尝试使用新的 ZFS 数据集(池/数据)设置 NFS 共享,并尝试使用现有网络组(foogroup)进行共享。在 NFS 服务器端和客户端上运行 Ubuntu 20.04,如果我指定主机或 IP 子网,它可以正常工作,但如果我尝试使用网络组,它会默默地失败。如果我使用 /etc/exports 而不是 sharenfs,我知道底层网络组正在工作。我使用 showmount -e 验证 /etc/exports(它正确显示网络组)和 sharenfs(不显示网络组)这两种方法。

作品:

cat /etc/exports
/export/ftp @foogroup(sync,rw)

# showmount -e
Export list for nfs_server:
/export/ftp @foogroup

不适用于 sharenfs(/etc/exports 内容已注释掉):

# zfs set sharenfs="rw=@foogroup" pool/data
# showmount -e
Export list for nfs_server:

我确实确认池/数据的挂载点属性设置为/export/ftp。我还确认了使用 IP 子网或主机名语法是否有效:

# zfs set sharenfs="[email protected]/24" pool/data

主机名也有效:

# zfs set sharenfs="rw=client" pool/data
# showmount -e 
Export list for nfs_server:
/export/ftp client

我的 sharenfs 语法有问题吗?或者这是 Linux 的 sharenfs 实现上的 ZFS 的一个错误?谢谢!

更新:我偶然发现了一份 openzfs 错误报告(https://github.com/openzfs/zfs/issues/2092)提供了使用网络组的示例,但语法不同。导出手册页只是说使用netgroups,语法是“@group”,但错误报告使用“@@group”语法。成功了!

相关内容