首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带idmap的NFSv4

带idmap的NFSv4
EN

Server Fault用户
提问于 2013-09-03 07:40:29
回答 3查看 50.6K关注 0票数 6

下面的错误出现在NFS服务器上,请您告诉我如何解决这个问题。

详细信息:

系统: CentOS Version6.4,NFS: nfs 1.2.3-36

代码语言:javascript
复制
# cat /etc/idmapd.conf

[General]
Domain = domain.com

[Mapping]
Nobody-User = nobody
Nobody-Group = nobody

[Translation]
Method = nsswitch
代码语言:javascript
复制
Sep  3 08:25:28 snode1 rpc.idmapd[1382]: nss_getpwnam: name '0' does not map into domain 'domain.com'
Sep  3 08:25:29 snode1 rpc.idmapd[1382]: nss_getpwnam: name '500' does not map into domain 'domain.com'

编辑:2013年9月3日10:41

请注意,我使用的是NFSv4,这些错误仅出现在NFS服务器上(而不是NFS客户端)。

服务器:

代码语言:javascript
复制
# cat /etc/sysconfig/nfs

MOUNTD_NFS_V2="no"
MOUNTD_NFS_V3="no"
...
RPCNFSDARGS="-N 2 -N 3"

客户:

代码语言:javascript
复制
# cat /etc/fstab

server:/     /data  nfs4    defaults,hard,intr,timeo=15,_netdev,noatime,nodiratime,nosuid    0 0

编辑:周三6月11日14:52:50英国夏令2014

代码语言:javascript
复制
# getent passwd "0" | cut -d: -f1
root
# getent passwd "500" | cut -d: -f1
user1

-

代码语言:javascript
复制
# grep "^passwd" /etc/nsswitch.conf 
passwd:     files
EN

回答 3

Server Fault用户

回答已采纳

发布于 2014-06-11 10:40:22

我来猜猜看。如果您在NFS服务器上解析UID“0”或“500”,您会得到什么?它们是本地帐户吗?

我建议这样做的原因是,NFSv4通过设计引用域中的帐户名,并试图避免使用以前版本的NFS的“本地身份验证”。因此,它使用idmapd来翻译帐户名--在NFS数据包中传递--将用户名转换为UID/GID。

正如您正确确定的那样,这看起来就是这里的漏洞--所以我的问题是,您使用的是什么身份验证域,当您查询它时,您得到了UID 0和500的答案吗?

我也看到过类似的情况,例如,与客户机相比,服务器查看了LDAP (好,活动目录)目录的错误分支。由于无法解决UID/用户名之间的关系,因此它破坏了这些用户,并将其转换为“任何人”。

您已经通过nsswitch配置了分辨率- nsswitch对“passwd”说了什么?(主要是在服务器上,因为那里似乎存在问题)。

编辑:好的,根据您的“passwd”,您有“文件”作为您的本地数据库-例如/etc/passwd。这意味着您正在通过本地帐户映射UID/GID。您不应该在NFSv4中使用UIDs它应该是用户名。

然而,googling给了我一点:http://www.spinics.net/lists/linux-nfs/msg38598.html

因此,接下来的问题是-您在使用'sys‘身份验证吗?我猜,基于您的fstab,在这一点上--这似乎是预期的行为--您的客户端正在使用'sys‘,因此传递了UID/GID。idmapd抱怨是因为他们不是有效的用户(他们是UID)。

如果在客户端上“触摸”UID 500或0的文件,那么在客户机和服务器(ls -l获取用户名,ls -ln获取uid)上它是什么样子的呢?如果工作正常,这似乎是NFSv3 Auth和NFSv4之间向后兼容性的产物,并且消息是无害的。

您可以考虑升级到Kerberos身份验证或类似的,但从经验来看,这是一个不平凡的练习。(尽管有一些比较方便的优点)。我所链接的消息(trail)意味着在以后的内核版本中停止出现该错误消息。

票数 8
EN

Server Fault用户

发布于 2013-09-03 09:06:33

您似乎使用的是NFSv3,它只通过网络发送数字用户和组标识符。

为了使idmapd工作,您将需要使用NFSv4,它发送由idmapper理解并映射到本地帐户的用户@域标识符(因此在服务器和客户端上都不需要相同的uid/gid )。

尝试使用-t选项挂载该共享:

代码语言:javascript
复制
mount -t nfs4 server:/path /mountpoint
票数 2
EN

Server Fault用户

发布于 2014-06-10 14:06:51

请检查以下来自gentoo论坛的解决方案是否帮助您:

代码语言:javascript
复制
 1. On the NFS server, /etc/hostname did not contain the FQDN, just the local hostname.
 2. This particular client had an unconfigured /etc/idmapd.conf. It had Domain = localdomain instead of Domain = FQDN-minus-hostname. 

对于您的设置,这看起来像第二个选项。

谷歌提供了准确的错误信息"nss_getpwnam: name '0‘不映射到域“,它提供了大量的结果,这些结果可能对您也有帮助(刚刚指出了最有希望的结果)。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/535809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档