我有两个相同的Linux机器(在亚马逊EC2中启动相同的图像),我试图通过NFSv4挂载一个导出的目录。 以下是在客户机上安装的目录:
root@server:~# ls -l /websites/ drwxr-xr-x 6 4294967294 4294967294 92 2010-01-01 20:21 logs drwxr-xr-x 2 4294967294 4294967294 20 2009-12-23 01:14 monit.d ...
我再次检查,以确保UID匹配
这里是我从客户端运行的mount命令
/sbin/mount.nfs4 $MASTER_DN:/ /websites -o rw,_netdev,async
这里是服务器机器上的/etc/exports
条目:
/websites 10.0.0.0/8(fsid=0,no_subtree_check,rw,no_root_squash)
正如使用NFS和ZFS的UID / GID所解释的,NFSv4不使用UID。 我有一个类似的问题,并能够通过使用NFSv3解决它。 这只需要在mount
命令中添加-o vers=3
即可。 当然,如果你确实需要使用NFSv4,这个响应对你来说没有什么用处。
在这里阅读http://blather.michaelwlucas.com/archives/796
如果NFSv4客户端和服务器域名不匹配,则所有用户名将显示为“nobody”。
编辑/etc/idmapd.conf并将服务器和客户端上的域设置为“localdomain”
[一般]
Domain = localdomain
[翻译]
方法= nsswitch
更改/ etc / default / nfs-common文件(在您的服务器和客户端上):set NEED_IDMAPD = yes
启动idmapd服务
这是一个用户ID映射问题。 出于某种原因,系统正在使用“nobody”帐户而不是真正的帐户ID。 检查你的挤压选项和你的idmapd.conf文件。
这里是我发现的一个线索,讨论这个问题,这个链接到感兴趣的post, http://www.mail-archive.com/[email protected]/msg03303.html 。
FYI,4294967294是-2,如果视为32位有符号整数。 -1或-2在各种Linux发行版上用于nobody UID和nogroup GID(在passwd文件中,通常使用最高16位无符号数65535)。
您需要更改/ etc / default / nfs-common文件(在您的服务器和客户端上):将NEED_IDMAPD
设置为yes
。
至less这对我有帮助。
我们使用NFS选项anonuid
和anongid
来设置服务器将用于由匿名创build的文件的用户/组ID。 如果没有设置,将使用“nobody”和“nogroup” – 根据操作系统的版本和分布情况可能有所不同。 所以a
/websites 10.0.0.0/8 (fsid=0,no_subtree_check,rw,no_root_squash,anonuid=1001,anongid=1001) ^^^^^^^^^^^^^^^^^^^^^^^^^^
可能的窍门(与1001是一个有效的和可用的UID / GID在您的服务器上)。