我在互联网上搜索了几个小时,但针对这个具体问题,我找不到任何解决方案。
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
),以便我可以导出那个...
我该如何解决这个问题? 请帮我。 谢谢。
答案 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