Linux使用特定用户挂载NFS

时间:2014-10-12 09:31:14

标签: permissions virtualbox mount

我在互联网上搜索了几个小时,但针对这个具体问题,我找不到任何解决方案。

1:我的PC上有一个Xubuntu Linux。我平均使用它:浏览互联网,观看视频等。它也为我的PHPStorm应用程序提供了家,但没有项目文件。这是主持人。它有一个仅限主机的网络:192.168.56.1

2:我有一个VirtualBox Debian Linux(无GUI)系统。这意味着代表我真正的网络服务器的开发版本。它包含所有项目文件。这个VM在外部驱动器上,所以我可以随处携带(例如:到办公室)。 192.168.56.101。这是客人。

3:在主机上我使用dnsmasq强制每个* .dev域重定向到GUEST。所以我可以轻松地测试我的项目。

4:在GUEST上我导出了/var/www中的/etc/exports文件夹:

/var/www 192.168.56.1(rw,sync,no_root_squash,no_subtree_check)

问题:我想使用HOST上的PHPStorm来“编辑”本地“GUEST”上的文件。但我无法将GUEST的/var/www文件夹装入具有完全权限的HOST /home/gabor/Projects文件夹中。我尝试使用以下内容:

$> sudo mount 192.168.56.101:/var/www /home/gabor/Projects

第一次看起来没问题,但是文件夹是nobody:nogoup挂载的,我没有编辑权限。

我希望/home/gabor/Projects拥有所有者gabor:gabor,我在此文件夹中创建的所有内容都必须在Debian端拥有所有者www-data:www-data。但是对于NFS安装,我无法指定用户。

$> sudo mount -o umask=0022,gid=1000,uid=1000 192.168.56.101:/var/www /home/gabor/Projects
mount.nfs: an incorrect mount option was specified

我也没有mount --bind /var/www在Debian上使用不同的用户(应该是nobody:nogroup),以便我可以导出那个...

我该如何解决这个问题? 请帮我。 谢谢。

3 个答案:

答案 0 :(得分:0)

NFS v2和v3不支持uid / gid。

在Ubuntu man nfs

答案 1 :(得分:0)

为后代添加此答案,因为我在这里最后遇到了相同的问题。

在/ etc / export中尝试:

/var/www 192.168.56.1(rw,root_squash)

然后在客户端上,将其放在/ etc / fstab中:

192.168.56.101:/var/www /home/gabor/Projects nfs defaults,user,noauto,relatime,rw 0 0

user选项将允许非root用户安装卷。根据需要调整其他选项。

然后再次在客户端上,成为要挂载该卷的用户,然后挂载您添加到/ etc / fstab的卷:

$ id
uid=1000(gabor) gid=1000(gabor) groups=1000(gabor)
$ mount /home/gabor/Projects
$

确保uid和/或gid在服务器上相同。我不确定用户名是否可以不同。另外,请确保用户或组可写服务器上导出的目录。有关以类似方式设置NFS的其他信息,请参见this blog post

注意:这是不安全的配置,没有身份验证。将NFS v4与Kerberos结合使用以进行强身份验证。

答案 2 :(得分:-1)

好的,我找到了一个完全符合我想要的解决方案。

首先,安装sshfs

$> sudo apt-get install sshfs

然后安装远程/var/www

$> sshfs -o uid=33,gid=33 root@192.168.56.101:/var/www /home/gabor/Projects

就是这样!

$> ls -la /home/gabor | grep Projects
drwxr-xr-x  1 www-data www-data  4096 Okt 14 21:10 Projects