如何让客户操作系统遵循共享文件夹的符号链接

如何让客户操作系统遵循共享文件夹的符号链接

在 VirtualBox 4.2.16 中,我以 Ubuntu Desktop 作为主操作系统,以 Ubuntu Server 作为客户操作系统。

我创建了一个名为 /shared 的共享文件夹,并在其中放入了指向主操作系统中不同文件夹的多个符号链接。当然,我的客户操作系统只能看到损坏的符号链接 - 因为这些位置仅存在于主操作系统中。

我怎样才能让我的客户操作系统看到它们的实际内容?

创建另一个共享文件夹是不可能的。

答案1

这是 virtualBox 中的一个问题,与安全有关。在 4.1.8 之前,符号链接可以工作,但存在严重缺陷。因此,决定删除符号链接支持。

看到这个评论

出于安全原因,VirtualBox 4.1.8 已禁用在客户机内创建符号链接的功能。客户机可以创建指向指定主机目录之外的符号链接。这与任何 ext3/ext4 错误无关。客户机仍可以读取在主机上创建的符号链接。

抱歉,我的声明迟了。

如果你

 VBoxManage setextradata VM_NAME VBoxInternal2/SharedFoldersEnableSymlinksCreate/SHARE_NAME 1

然后您的客户机将能够再次创建符号链接。但出于安全原因(见上文),默认情况下此功能被禁用。防止客户机出现危险符号链接的修复非常复杂,因此我们决定不允许任何客户机创建任何符号链接来解决安全问题。

(我擅自修复了评论中的一个错误;))

  • 还请注意你需要重启vBox以激活更改。

答案2

简短的回答是,这是不可能的。

下列virtualbox.org 上有一些澄清:

此更改是有意为之,可修复当前共享文件夹实现中的一个问题。为了与不知道符号链接是什么的客户操作系统兼容,目前在主机端对其进行解释,这意味着知道符号链接是什么的客户操作系统会出现意外行为(例如,如果挂载在 /foo 的共享文件夹上的符号链接指向 /bar/file,则不可能在主机端执行正确的操作)。

当然,这是可以修复的,但绝非易事,因为需要重新设计客户操作系统端和主机端之间的符号链接处理分离。这无法快速完成,因此唯一的选择是禁用符号链接创建。太多用户/应用程序因非标准行为而措手不及。

来源

相关内容