在一台 rhel 5 linux 服务器(两个月前更新)上,正在使用 NFS 挂载两个 NAS。在这些共享上,目录属于两个不同的用户,两者都存在于服务器本地。
其中一个由 rpcidmapd 正确映射,但另一个共享显示无人:无人作为所有者。
随着verbose的增加,良好挂载的输出日志(tomcat用户):
Jun 1 15:39:19 server_hostname rpc.idmapd[31250]: nfs4_name_to_uid: calling nsswitch->name_to_uid
Jun 1 15:39:19 server_hostname rpc.idmapd[31250]: nss_getpwnam: name '[email protected]' domain 'domain.com': resulting localname 'tomcat'
Jun 1 15:39:19 server_hostname rpc.idmapd[31250]: nfs4_name_to_uid: nsswitch->name_to_uid returned 0
Jun 1 15:39:19 server_hostname rpc.idmapd[31250]: nfs4_name_to_uid: final return value is 0
Jun 1 15:39:19 server_hostname rpc.idmapd[31250]: Client 0: (user) name "[email protected]" -> id "667"
Jun 1 15:39:19 server_hostname rpc.idmapd[31250]: nfs4_name_to_gid: calling nsswitch->name_to_gid
Jun 1 15:39:19 server_hostname rpc.idmapd[31250]: nfs4_name_to_gid: nsswitch->name_to_gid returned 0
Jun 1 15:39:19 server_hostname rpc.idmapd[31250]: nfs4_name_to_gid: final return value is 0
Jun 1 15:39:19 server_hostname rpc.idmapd[31250]: Client 0: (group) name "[email protected]" -> id "667"
对于未正确映射的用户,我们有一个 -22 退出代码:
Jun 1 15:56:31 server_hostname rpc.idmapd[7128]: nfs4_name_to_uid: calling nsswitch->name_to_uid
Jun 1 15:56:31 server_hostname rpc.idmapd[7128]: nss_getpwnam: name '10701' domain 'domain.com': resulting localname '(null)'
Jun 1 15:56:31 server_hostname rpc.idmapd[7128]: nss_getpwnam: name '10701' does not map into domain 'domain.com'
Jun 1 15:56:31 server_hostname rpc.idmapd[7128]: nfs4_name_to_uid: nsswitch->name_to_uid returned -22
Jun 1 15:56:31 server_hostname rpc.idmapd[7128]: nfs4_name_to_uid: final return value is -22
Jun 1 15:56:31 server_hostname rpc.idmapd[7128]: Client 0: (user) name "10701" -> id "99"
Jun 1 15:56:31 server_hostname rpc.idmapd[7128]: nfs4_name_to_gid: calling nsswitch->name_to_gid
Jun 1 15:56:31 server_hostname rpc.idmapd[7128]: nfs4_name_to_gid: nsswitch->name_to_gid returned -22
Jun 1 15:56:31 server_hostname rpc.idmapd[7128]: nfs4_name_to_gid: final return value is -22
Jun 1 15:56:31 server_hostname rpc.idmapd[7128]: Client 0: (group) name "672" -> id "99"
相同的安装在 rhel 7.4 服务器上运行良好。
/etc/idmapd.conf
两台服务器上都是一样的。
用户和组都存在于本地, getent passwd 对这两个用户都响应良好。
用户名长度超过 8 个字符,尝试将其减少到 8 个字符,但没有成功。
考虑过高于 10000 的 uid,但找不到谈论这种限制的文档。
现在缺乏想法,我用谷歌搜索了很多,但找不到它对一个用户有效但对另一个用户无效的原因。
答案1
NFSv4 提供了一种将用户名映射到用户 ID 的方法。如果您希望在服务器和客户端上拥有相同的凭据,您可以为两个系统提供相同的凭据域名
如果这在您的平台上不起作用,请在文档中搜索有关如何配置的信息nfsv4 域