Virtualbox共享文件夹权限

Sai*_*ike 377 virtualbox shared-directory

我在RedHat上使用Windows和Virtualbox,简单起见:我创建了一个共享文件夹,因此我可以在Windows操作系统上使用Eclipse并在Linux中进行一些测试.

但是,我无法访问我的用户共享文件夹,我已使用root登录并使用chmod 777,甚至将我的用户移动到文件夹的组.

无论我做什么,结果都是一样的:

/media/sf_sharedFolder/: Permission denied

我能做什么?如何与我的用户访问共享文件夹?

Con*_*tin 744

将您自己添加到vboxsf来宾VM中的组.

解决方案1

编辑文件sudo adduser $USER vboxsf.寻找线sudo usermod --append --groups vboxsf $USER并在最后添加/etc/group

解决方案2

vboxsf:x:999

无论哪种方式,您应首先注销,然后在执行此操作后登录以使更改生效.

  • FWIW,退出和退出足以使更改生效. (89认同)
  • 与@Alex相同的结果是,使用Win7作为主机,Ubuntu 17.04作为来宾,将用户添加到vboxsf并且登录/注销是不够的,必须完全重启虚拟机才能使权限生效. (13认同)
  • 我使用Ubuntu 17.04作为访客,Windows 10作为主机操作系统(均为64位),出于某种原因,在我重新启动guest虚拟机之前它不起作用.我使用了解决方案2. (9认同)
  • 谢谢,对我来说,它只是缺少重启部分. (7认同)
  • FWIW,因为您已经在评论行中,所以无需注销并重新登录.只需卸载共享并重新安装即可.主机VirtualBox>设备>共享文件夹>将鼠标悬停在您共享的文件夹上以查看工具提示信息.例如:`sudo mount -t vboxsf VboxSharedFolderName/media/VboxSharedFolderName`(此功能需要Guest Additions). (3认同)
  • 为什么 chmod / chown 不适用于共享的 virtualbox 文件夹? (2认同)
  • 对我来说它不起作用!组已将用户添加到 vboxfs。我重新启动了主机,并重新启动了virtualbox。ls -l 在 vb 中将我显示为共享文件夹的所有者,但是当我进入它并尝试将文件添加到主机时,我看到所有者是 root。即使获得 777 许可,我也不能在那里写东西。我想念什么? (2认同)

小智 183

试试这个(在客机上,即在虚拟框中运行的操作系统):

sudo adduser your-user vboxsf
Run Code Online (Sandbox Code Playgroud)

现在重新启动虚拟机中运行的操作系统.

  • 非常感谢!!工作得很好.唯一要补充的是我必须重新启动操作系统(不尝试只关闭loggin但它可能就够了) (7认同)
  • 甚至没有必要注销,su - $ USER就足够了.(当然,对于从新she​​ll开始的程序.) (2认同)
  • 对于我想做的事情,需要重新启动。如果您希望它是自动的,而不是基于手动安装,则重新启动会更容易。 (2认同)
  • 我还必须在 Ubuntu 18 上重新启动。注销并重新登录并没有成功。卸载并重新安装都没有效果。只有重新启动似乎才能使其工作。 (2认同)

GEv*_*ing 46

这也有效

sudo usermod -aG <group> <user>
Run Code Online (Sandbox Code Playgroud)

然后重启vm

  • 在我的系统上,由于某种原因需要重新启动。 (5认同)
  • 不需要重新启动虚拟机,只需注销并重新启动即可 (2认同)
  • 我第二@Tensigh。虽然我的用户显示在 /etc/group 中,但它从未通过输入“groups”显示出来。我必须重新启动虚拟机。 (2认同)

ISp*_*kes 26

对于真正的懒惰(没有打字,只有完全容易的复制和粘贴):

sudo usermod -aG vboxsf $USER
Run Code Online (Sandbox Code Playgroud)

注销并重新登录以使更改生效.

我知道这是一个"我太"的解决方案,但我真的很懒,并没有找到任何其他解决方案来吸引我天生的冷漠...... :)

  • 使用 Ubutun 18.04.xLTS 在 VirtualBox 6.1 中使用上述命令需要重新启动 (3认同)
  • 注销无济于事,我必须重新启动它。 (2认同)

TJA*_*TJA 10

对于VirtualBox(5.0.24)Host = Mac(El Capitan)和Guest = RHEL(7.2)

启动RHEL Guest VM并打开终端.确保安装了开发人员工具.

sudo yum groupinstall 'Developer Tools'
Run Code Online (Sandbox Code Playgroud)

并且内核头文件包打包,以便Guest Additions脚本可以更新内核.

sudo yum install kernel-devel*
Run Code Online (Sandbox Code Playgroud)

一旦准备就绪,就可以安装Guest Additions.随着你正在运行的VM选择去VirtualBox的菜单,并选择设备- >插入客户添置CD映像...

在此输入图像描述

允许挂载发生几秒钟,然后启动安装脚本.一旦他们点击了访客VM中弹出的对话框中的"运行"按钮.

脚本完成后,右键单击桌面上的CD图标,然后选择"弹出".然后关闭来宾VM.

使用终端在您的主机系统中创建共享文件夹,我通常将其放在我的文档文件夹中,并确保您的用户可以访问它.

sudo mkdir ~/Documents/RhelShared
sudo chmod 755 <user> ~/Documents/RhelShared
Run Code Online (Sandbox Code Playgroud)

在Oracle VM Virtual Box Manager中,选择您的VM,然后单击"Shared folders"配置元素.在下一个对话框中,单击"文件夹列表"右侧的"添加文件夹"图标.

然后在弹出窗口中选择您刚刚创建的主机文件夹作为文件夹路径,并为其提供将由访客VM使用的文件夹名称,同时勾选"自动安装"复选框.

在此输入图像描述

重新启动来宾VM后,在主机上启动终端,并检查与正在运行的VirtualBox Guest进程关联的用户是您的用户,非常可能,还是可以访问共享文件夹的组.

ps aux | grep VirtualBoxVM
Run Code Online (Sandbox Code Playgroud)

然后,根据访客VM上终端中的几个先前答案,将您的用户添加到vboxsf组.

sudo usermod -a -G vboxsf <user>
Run Code Online (Sandbox Code Playgroud)

注销并再次启动以获取更改.

共享文件夹现在应该可用并可以sf_rhelshared访问,假设您使用的名称与我在上面的弹出窗口中使用的名称相同.


小智 6

为了澄清上一篇文章:

VBoxManage命令是:

VBoxManage setextradata <VM_NAME> VBoxInternal2/SharedFoldersEnableSymlinksCreate/<SHARE_NAME> 1
Run Code Online (Sandbox Code Playgroud)


Jam*_*orn 6

就我而言,以下是必要的:

sudo chgrp vboxsf /media/sf_sharedFolder
Run Code Online (Sandbox Code Playgroud)