主人
我有一台运行Ubuntu 12.04的主机,位于10.0.0.202
。它为网络上的其他计算机提供了NFS共享。以下是内容/etc/exports
:
/media/storagedrive 10.0.0.0/24(rw,sync,no_subtree_check)
目的是/media/storagedrive
在IP范围内与网络上的其他计算机共享内容10.0.0.0 - 10.0.0.255
。
工作客户
这与10.0.0.40
运行Ubuntu 13.10(称为MattDev)的客户端计算机正常工作。那台机器/etc/fstab
看起来像这样:
UUID=8f8c838e-3ea2-457a-87f0-57b12dfab06c / ext4 errors=remount-ro 0 1
UUID=427089d4-46a2-432d-9df4-7016bdfc7df2 none swap sw 0 0
10.0.0.202:/media/storagedrive /mnt/NetworkStorageDrive nfs rsize=8192,wsize=8192,timeo=14,intr
而ls -al /mnt/
在这台机器看起来像这样:
total 12K
drwxr-xr-x 3 root root 4.0K Feb 4 17:48 .
drwxr-xr-x 23 root root 4.0K Feb 5 08:44 ..
drwxrwxr-x 7 root plugdev 4.0K Feb 5 11:43 NetworkStorageDrive
输出id
如下:
uid=1000(matt) gid=1000(matt) groups=1000(matt),4(adm),24(cdrom),27(sudo),30(dip),33(www-data),46(plugdev),112(lpadmin),124(sambashare)
非工作虚拟客户端
我有一台第二台客户端计算机,它在Windows 7主机上作为来宾OS运行Ubuntu 12.10。主机在网络上为10.0.0.28
。来宾计算机由Vagrant使用VirtualBox 4.3.6作为提供程序进行管理。我将称Windows 7主机AlexDevHost和Ubuntu来宾AlexDevGuest。
showmount -e 10.0.0.202
在AlexDevGuest上运行会产生:
Export list for 10.0.0.202:
/media/storagedrive 10.0.0.0/24
但是,当我尝试挂载共享时,它将失败:
$ sudo mount 10.0.0.202:/media/storagedrive /mnt/NetworkStorageDrive
mount.nfs: access denied by server while mounting 10.0.0.202:/media/storagedrive
所以我开始寻找问题:
$ ls -alh /mnt/
total 12K
drwxr-xr-x 3 root root 4.0K Feb 5 12:23 .
drwxr-xr-x 26 root root 4.0K Feb 5 12:23 ..
drwxr-xr-x 2 root root 4.0K Feb 5 12:23 NetworkStorageDrive
$ id
uid=1001(vagrant) gid=1001(vagrant) groups=1001(vagrant)
$
该uid和gid与MattDev上的用户matt不同。因此,我为流浪者的uid忙得不可开交,因为我读到NFS访问是通过匹配IP地址和uid来控制的。所以现在:
$ id
uid=1000(vagrant) gid=1001(vagrant) groups=1001(vagrant)
$ sudo mount 10.0.0.202:/media/storagedrive /mnt/NetworkStorageDrive
mount.nfs: access denied by server while mounting 10.0.0.202:/media/storagedrive
$
仍然没有成功。所以现在我的想法不多了。
- 我究竟做错了什么?
- 如果uid部分正确,是否可以通过一种方法来验证NFS服务器计算机将我的访问尝试视为来自
10.0.0.28
,而不是其他不在允许范围内的IP?