NFS客户端报告权限被拒绝,服务器报告权限被授予

我有两个RedHat 4服务器。 客户端是4.6,服务器是4.5。 我试图从服务器上挂载一个共享,通过NFS到客户端上。

/ etc / exportsconfiguration如下:

/opt/data/config bkup(rw,no_root_squash,async)
/opt/data/db bkup(rw,no_root_squash,async)

exportfs返回这些(除其他之外)共享,nfs根据ps输出运行。

我一直试图在客户端上使用autofs,但select只是手动安装共享考虑我遇到的问题。

所以,我发出挂载请求:
mount dist:/opt/data/config /mnt/config

mount:dist:/ opt / data / config失败,服务器给出的原因:权限被拒绝

好的,让我们来看看服务器自己说了些什么。

5月6日23:17:55 dist mountd [3782]:从/ opt / data / config(/ opt / data / config)的bkup:662authentication的挂载请求

它说,它允许山地发生。

我怎样才能诊断为什么客户端和服务器不同意的结果?

这是身份validation和授权之间区别的一个很好的例子。 在这种情况下,身份validation成功,但主机目录上的授权很可能成为问题。 为了testing,您可以尝试将主机的目录权限recursion设置为777(不要忘记稍后再次更改)。

检查事项:

  • 客户端和主机上的用户名和uuid是否相同?
  • 主机上的权限是否设置正确?
  • 主机服务器上的NFS是否有正确的权限来访问它应该共享的文件? 即。 NFS是否以root身份运行,如果不是,那么它正在尝试访问的文件是否设置了正确的权限,以允许NFS守护程序本身访问它们?

我通常使用tcpdump来debugging这类问题。 原始数据包捕获总是告诉别人。

从NFS客户端和服务器启动数据包捕获。

 tcpdump -s0 -i ethX -w /tmp/tcpdump_from_client.pcap host <NFS-server-IP> tcpdump -s0 -i ethX -w /tmp/tcpdump_from_server.pcap host <NFS-client-IP> 

用eth1或者eth1replaceethX,或者用eth1replaceeth1。

然后,在数据包捕获中查找RPC传输。 我更喜欢wireshark并看到TCP部分。 我经常看到它提供了一些线索。

下一步将是启用NFSdebugging日志。

我会强烈要求你保留tcpdump数据给你自己,或者让你检查你信任的人。

检查/proc/fs/nfsd是否有文件。

如果没有,发出这个命令:

 mount -t nfsd none /proc/fs/nfsd 

如果有,我也不知道。