我有一个数据服务器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
所有者的最安全方法是什么?