如何使 NFS 挂载在多个目标上拥有相同的所有者?

如何使 NFS 挂载在多个目标上拥有相同的所有者?

我有一个数据服务器dataserver,通过 NSF 安装到多个 Ubuntu VM(16.04 和 20.04 的混合)。

目标虚拟机通过 systemd 单元文件挂载目录

[Unit]
Description=/mountpoint
Wants=network-online.target
After=network-online.target

[Mount]
What=dataserver:/origin/folder
Where=/mountpoint
Type=nfs
Options=nofail,rw,soft,intr,actimeo=60

[Install]
WantedBy=multi-user.target

在目标虚拟机上,挂载的文件显示为由不同的用户拥有。在某些情况下,/mountpoint/ 由utility:utgroup我们定义的实用程序用户/组拥有,并且我们拥有这些文件。在这些虚拟机上,utility:utgroup具有 UID/GID 999:999

但是,在其他虚拟机上,挂载的文件显示为 所拥有systemd-coredump:systemd-coredump。在这些虚拟机上,该用户/组具有 UID/GID 999:999,并且utility:utgroup具有其他内容。

似乎 NFS 源正在通过 UID/GID 挂载,并且目标虚拟机将其过滤到本地使用这些 ID 的任何用户和组中。

我想让utility:utgroup所有虚拟机上的已挂载文件的所有者成为所有者。最明显的方法是将systemd-coredump所有虚拟机上的 UID/GID 移至不同的值(现在为 999),然后移至utility:utgroup该 UID/GID。然而,弄乱 systemd 实用程序用户/组的 ID 似乎会招致灾难。

这个答案一个有点类似的问题建议使用/etc/nfs.map映射 ID,但显然这是一种不再有效的旧方法。我自己尝试过,它并没有改变具有错误用户:组所有权的虚拟机上的用户。

在所有虚拟机上成为utility:utgroup所有者的最安全方法是什么?

相关内容