NFS 共享访问 - 权限被拒绝

NFS 共享访问 - 权限被拒绝

已编辑,因为情况略有变化。

我正在尝试使用 NFS 将 NAS 设备 (WD Mybook WE) 上的目录共享到本地网络上的另一台计算机。NAS 设备上的目录如下所示:

drwxr-x---   15 git      git          4096 Nov 17 01:05 git/

NAS 设备上的用户 IDgit如下:

[root@myhost DataVolume]# id git
uid=505(git) gid=505(git)

我尝试了/etc/exports文件中的许多不同参数,这就是我目前得到的结果:

/DataVolume/git 192.168.0.20(async,rw,no_root_squash)

在客户端,我有具有相同 ID 的用户git和组git,以匹配服务器上的用户和组。

user@myclient:~$ id git
uid=505(git) gid=505(git) groups=505(git)

我使用以下命令挂载目录:

sudo mount myhost:/DataVolume/git -t nfs git/

挂载的目录如下:

drwxr-x--- 15 git    git       4096 Nov 17 01:05 git

完成这些步骤后,我可以用具有读写权限的 root 用户身份从客户端访问此目录。但客户git端上的用户仍然无法cd进入该目录。git用户在两个设备上具有相同的 uid 和 gid,并且如您所见,该目录归该用户所有。

在此先感谢您的帮助。

答案1

使用以下命令验证目录是否确实已导出no_root_squash

grep git /proc/fs/nfs/exports

您是否在客户端或服务器上启用了 SELinux?如果启用了,请尝试禁用它(或将策略设置为permissive),然后重新启动nfsd并重新安装共享。

您的日志(客户端和服务器)对此有何评论?

编辑:

当您在客户端showmount -a server运行时,您是否看到挂载/导出?showmount -e server

ready and waiting在客户端运行下面​​三个命令有响应吗?

  • rpcinfo -T udp server nfs
  • rpcinfo -T udp server mountd
  • rpcinfo -T udp server nlockmgr

答案2

在导出选项中使用 fsid=0 可能有助于访问其他人没有读取权限的文件和目录。请参阅 - http://softpanorama.net/Net/Linux_networking/Suse_networking/suse_nfs.shtml

答案3

您应该检查 sylog 以获取有关为什么会出现“访问被拒绝”错误的更多信息。运行以下命令检查最近编辑了哪些日志文件,然后检查这些文件的最后几行。

ls -latr /var/log/

我曾经遇到过与 NFS 相同的问题,一切似乎都设置正确,但无论我做什么,我总是收到“安装 xxx 时服务器拒绝访问”错误。日志显示了“非法端口”错误,我通过在导出文件中添加选项“不安全”解决了该问题,即:

/DataVolume/git 192.168.0.20(异步,rw,no_root_squash,no_subtree_check,不安全)

尝试一下,看看是否能让你更接近目标。

相关内容