在没有VirtualBox共享文件夹的情况下在客户机和主机之间共享文件
使用VirtualBox的OSE版本,您将无法使用二进制版本提供的共享文件夹功能。
本文也适用于二进制版本,作为客户机和主机之间共享文件夹的另一种方式。
为了共享文件夹,您必须使用“主机接口”网络功能。这允许您使用网络文件系统,例如在UNIX系统(如Solaris、各种BSD版本和Linux)上可用的NFS。NFS的优点是易于配置,缺点是可能需要不安全的服务。如果您的客户机是Microsoft产品,您必须在它们上安装NFS驱动程序或使用CIFS(Windows文件共享),后者在UNIX系统上通过Samba实现。
在现代Linux系统(Gnome或KDE环境下)中,还有另一种共享文件夹的方式:您可以使用SSHFS,它使用SSH协议模拟文件系统。这是一种更安全的方式。
NFS
NFS的配置非常简单。在主机上,您必须安装NFS服务器并启动它。您可以在/etc/exports文件中声明要导出的文件夹。
# /etc/exports # Syntax: <folder> <guest-IP-or-name>(<options>) /var/exports 10.1.1.2(rw,sync)
如果您需要添加另一个共享或修改现有共享,可以使用exportfs工具。
exportfs -r # delete all exported folder exportfs -a # add all folder from /etc/exports exportfs 10.1.1.2:/var/exports # add only given folder for the client with IP # 10.1.1.2 exportfs # show which folder are shared
在客户机上,您必须将共享插入/etc/fstab文件。例如
10.1.1.1:/var/exports /mnt/shared nfs user,noauto,rw 0 0
通过此行,用户可以从IP地址为10.1.1.1的主机挂载/var/exports目录。
您也可以在启动时自动挂载共享。在这种情况下,fstab条目应为
10.1.1.1:/var/exports /mnt/shared nfs rw,auto,rw 0 0
权限问题
共享文件和目录的权限基于用户ID。例如,如果主机运行Fedora Core而客户机运行Ubuntu,则标准用户将没有相同的UID,因此主机上的bob与客户机上的bob不是同一个用户。为了解决这个问题,您必须确保两个系统上的用户ID相同。
注意:NFS不支持IPv6
CIFS / SAMBA
您必须为此安装Samba服务器,并在配置后启动它。您还必须为允许连接到共享的用户创建密码。
大多数当前的Linux发行版都有配置Samba的工具,所以我们在这里不展示代码。
不要忘记为用户设置密码——如果您不这样做,将无法挂载共享文件夹。
权限基于用户名,如果您的Samba服务器设置正确,您将对目录和文件拥有读/写访问权限。
如果您的系统没有直接挂载共享的内置支持,您可以使用xsmbrowser工具来查找并挂载共享文件夹。
SSH / SSHFS
SSHFS (安全Shell文件系统) http://en.wikipedia.org/wiki/SSHFS 是一个FUSE(用户空间文件系统),用于实现一个虚拟文件系统,允许从文件管理器(如Konqueror (KDE)或Nautilus (GNOME))进行浏览、复制、编辑等操作。您只需要主机上有一个正在运行的SSH守护程序。大多数现代Linux发行版都已配置好,您只需启动SSH服务即可开箱即用。如果出现问题,您应该查看/etc/hosts.deny文件,其中应包含一行
sshd : 10.1.1.0/255.255.255.0
这允许IP范围在10.1.1.1到10.1.1.254的所有主机通过SSH连接。
如果您的客户机默认不支持SSHFS,则必须安装fuse和sshfs。完成此操作后,您可以自动或按需挂载文件系统——请参阅SSHFS常见问题页面 http://fuse.sourceforge.net/wiki/index.php/SshfsFaq。