通过NFSv4挂载的文件归4294967294所有,UID和GID匹配


23

我有两台相同的Linux计算机(在Amazon 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匹配

这是我从客户端运行的安装命令

/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)

rpcidmapd服务正在运行吗?使用命令启动它们。/etc/init.d/rpcidmapd重启chkconfig的rpcidmapd上

Answers:


8

具有NFS和ZFS的UID / GID中所述,NFSv4不使用UID。我遇到了类似的问题,并且可以通过使用NFSv3来解决。这仅需要添加-o vers=3mount命令中。当然,如果您确实需要使用NFSv4,则此响应对您没有多大用处。


7

在这里阅读http://blather.michaelwlucas.com/archives/796

如果NFSv4客户端和服务器域名不匹配,则所有用户名都将显示为“ nobody”。

  1. 编辑/etc/idmapd.conf并将服务器和客户端上的Domain设置为“ localdomain”

    [一般]

    域= localdomain

    [翻译]

    方法= nsswitch

  2. 更改/ etc / default / nfs-common文件(在服务器和客户端上):设置NEED_IDMAPD = yes

  3. 启动idmapd服务


对我来说,这个答案解决了我遇到的问题(“ idmapd”因索姆原因而崩溃)。
Henk

7

这是一个用户ID映射问题。由于某些原因,系统使用的是“ nobody”帐户,而不是真实的帐户ID。检查您的压缩选项和idmapd.conf文件。

我发现这是一个讨论该问题的线程,它链接到感兴趣的帖子http://www.mail-archive.com/rhelv5-list@redhat.com/msg03303.html

FYI,如果将其视为32位带符号整数,则为2294967294。-1或-2在各种Linux发行版中用于Noone UID和nogroup GID(在passwd文件中,通常使用最高的16位无符号数字65535)。


大卫,感谢您的答复。根据我的帖子,我已no_root_squash启用。您是否还有有关idmapd.conf文件的更多信息?
jberryman 2010年

3

您需要更改的/ etc / default / nfs中常见的文件(在两个服务器和客户端):设置NEED_IDMAPDyes

至少这对我有帮助。


2

我们正在使用NFS选项,anonuidanongid设置服务器将用于匿名创建的文件的用户/组ID。如果未设置这些选项,则将使用“ nobody”和“ nogroup”-视操作系统版本和发行版而定。所以

/websites 10.0.0.0/8 
    (fsid=0,no_subtree_check,rw,no_root_squash,anonuid=1001,anongid=1001)
                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^

可能会骗人(其中1001是服务器上的有效且可用的UID / GID)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.