我只find1或2个其他的发布,没有任何解决scheme,所以我正在为我的情况创build一个新的,更具体的问题。
系统设置:NFS服务器运行NFSv4。 运行RedHat 6的NFS客户端,idmapd在/etc/idmapd.conf中使用以下内容运行:
[General] Verbosity = 7 Domain = localdomain [Mapping] Nobody-User = nobody Nobody-Group = nobody Method = nsswitch
问题是chown / chgrp对于某些用户失败,出现“Invalid argument”错误,如下所示,即使用户存在于本地主机上:
# chown oracle m chown: changing ownership of `m': Invalid argument # grep oracle /etc/passwd oracle:x:54321:54321::/home/oracle:/bin/bash # chown mysql m # grep mysql /etc/passwd mysql:x:496:496:MySQL server:/var/lib/mysql:/bin/bash
为什么idmapd不能识别某些用户,但它可以与其他用户(root,nobody,甚至mysql,这是非标准的,都OK)?
我上面缺less的任何具体设置? 我想当域被设置为localdomain,那么一切都应该使用本地passwd /组文件等(是的,nsswitch.conf列出passwd和组作为文件)?
提前致谢!
我只是想closures这个循环。 我find了答案。 这里的问题是,当rpcidmapd打开,NFSv4使用它来做映射,但这意味着NFS发送用户名@域名与UID / GID到服务器。
当服务器不理解这个username @ domainname(可能是因为服务器没有设置相同的目录或其他原因),它不允许chown / chmod。
显然这个默认行为是不正确的。 在以后的Linux内核中,内核中的NFS维护人员修复了这个问题,因此NFSv4的默认设置是不使用idmapping。 请参阅此处的提交: http : //git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=074b1d12fe2500d7d453902f9266e6674b30d84c
要自己解决这个问题,你可以这样做(RHEL特定的):
echo "options nfs nfs4_disable_idmapping=1" >> /etc/modprobe.d/nfs.conf
希望这可以帮助。