挂载 NFS:所有者是 nobody:nogroup

Fra*_*urt 5 nfs

我使用以下代码从 shell 挂载了一个 NFS 文件系统:

LINE='nfs.mit.edu:/export/evodesign/beatdb /beatdb nfs tcp,intr,rw 0 0'
grep "$LINE" /etc/fstab >/dev/null || echo $LINE >> /etc/fstab
mkdir /beatdb
mount -a # Remount /etc/fstab Without Reboot in Linux
Run Code Online (Sandbox Code Playgroud)

我将文件显示为 nobody:nogroup:

在此处输入图片说明

有解决此问题并显示正确所有者的想法吗?

我使用 Ubuntu 12.04。

编辑:

客户端(我无权访问 NFS 服务器):

rpcidmapd 在跑:

在此处输入图片说明

rpcinfo -p

在此处输入图片说明

/etc/idmapd.conf

在此处输入图片说明

sou*_*edi 1

寻求本地支持或文档听起来是一个非常好的主意:)。

以清单形式,我认为你需要

1) 在客户端系统上创建所需的用户。这可以手动完成,但您应该期望有一个可以配置的自动“目录服务”。可能是 LDAP。

2)客户端和服务器之间的用户映射。在 NFS4 中(由 tcp 选项暗示)正如 gareth 所提到的,这是由 idmapd 处理的。您只需要设置域以匹配服务器的想法即可。跨域不行,我认为这是Linux的限制。

3) kerberos 向服务器验证您自己的身份(在 NFS4 中可用)。如果您想以“nobody”之外的其他人的身份访问任何文件,那么这绝对是需要的。我建议首先配置和测试 kerberos。配置它包括设置一个域 - 您将在 idmapd.conf 中设置相同的域。

或者使用 NFS3 样式的身份验证,将跳过 3),而不是 2),您只需确保用户的数字 UID 与服务器的数字 UID 匹配即可。这仅在服务器信任客户端的情况下使用:)。