NFS写入权限错误

NFS写入权限错误,nfs,centos5,Nfs,Centos5,我已经在一台服务器上创建了一个到另一台(客户机)服务器的NFS共享,并成功地将文件夹(比如/home/user/public\u html/examplefolder)装载到第二台(客户机)服务器上 我已登录到第二台(客户端)服务器上的FTP帐户,并试图将文件夹/文件写入已装载的NFS位置(/home/user/public\u html/examplefolder),但我收到一个权限被拒绝的错误 如果我以root用户身份ssh到客户机服务器,我就拥有写入NFS装载位置的完全权限,因此我知道这一

我已经在一台服务器上创建了一个到另一台(客户机)服务器的NFS共享,并成功地将文件夹(比如/home/user/public\u html/examplefolder)装载到第二台(客户机)服务器上

我已登录到第二台(客户端)服务器上的FTP帐户,并试图将文件夹/文件写入已装载的NFS位置(/home/user/public\u html/examplefolder),但我收到一个权限被拒绝的错误

如果我以root用户身份ssh到客户机服务器,我就拥有写入NFS装载位置的完全权限,因此我知道这一定是用户权限类型的错误

我在两台服务器上都运行CentOS 5。

我不认为您遇到了
根压缩
,但我在跟踪您描述中的所有客户端和服务器时遇到了问题,因此这里是
根压缩
的快速摘要,您可以更好地判断是否发生了这种情况:

NFS提供了一个选项,以确保在客户端上以
root
身份运行的进程在服务器上没有特殊权限。因此,服务器“挤压”所有客户端
root
对服务器上的
nobody
用户的访问。(这就是为什么程序永远不应该作为
无人运行的原因;用户id已经有了特定的用途,不应该用于几个不相关的目的。)

另一种可能是FTP服务器被诸如、或之类的工具限制。这些工具中的任何一个都可能阻止应用程序在特定位置写入,并且可能尚未针对您的站点进行配置。检查
dmesg(1)
输出以查看是否有任何拒绝消息,如果
auditd(8)
未运行,则大多数或所有这些工具将登录到
dmesg(1)


而且,也许您的ftp服务器已经被删除了。找出
拒绝访问
错误消息的来源非常重要;您可以
strace-o/tmp/ftp.out-f$(pidof ftpd)
(或任何进程名称)将所有系统调用和结果记录到
/tmp/ftp.out
文件中,这将使您有机会查看
是否打开(2)
调用被操作系统或程序拒绝。

我最终进行了完整的用户和组修改,以使客户机服务器上的用户和组与原始服务器匹配。

sarnold,我已将问题缩小为在服务器上有单独的UID和GID。我使用no_root_squash选项装载,这就是为什么我能够使用客户机服务器上的root帐户写入目录。因此,现在我的选择似乎是更改一台服务器上的UID和GID以匹配另一台服务器上的UID和GID,或者允许客户端服务器上的UID和GID写入目录,后者我不确定该怎么做。@Thenayr,oh cripes:)不匹配的UID是一个巨大的痛苦。我甚至花了一个下午来解决这个问题。我一定是抑制了这种记忆——对不起,我没早点想到。最后,我们决定在公司范围内标准化uid要容易得多,因为只有两三台机器需要修改。我尝试使用all_squash,在客户端服务器上将anonuid和anongid设置为正确的uid和gid(比如uid 500和gid 500),但挂载仍然显示为主服务器的uid和gid(503和503)。@Thenayr,您重新装载导出了吗?这些更改可能只对新装载生效。Sarnold-是,并重新启动了NIS和portmap服务。