我在RedHat上使用Windows和Virtualbox,简单起见:我创建了一个共享文件夹,因此我可以在Windows操作系统上使用Eclipse并在Linux中进行一些测试。
但是,我无法访问我的用户共享文件夹,我已使用root登录并使用chmod 777
甚至将我的用户移动到该文件夹的组。
无论我做什么,结果都是一样的:
/media/sf_sharedFolder/: Permission denied
我能做什么?如何与我的用户访问共享文件夹?
将您自己添加到来宾VM中的vboxsf
组。
解决方案1
从终端运行sudo adduser $USER vboxsf
。
解决方案2
编辑文件/etc/group
(您将需要root权限)。寻找行vboxsf:x:999
并在最后添加:yourusername
- 如果你没有sudo,请使用此解决方案。
要生效,您应该注销然后登录,否则您需要重启。
试试这个(在客机上,即在虚拟框中运行的操作系统):
sudo adduser your-user vboxsf
现在重新启动虚拟机中运行的操作系统。
这也有效
sudo usermod -aG <group> <user>
然后重启vm
对于真正的懒惰(没有打字,只有完全容易的复制和粘贴):
sudo usermod -aG vboxsf $USER
注销并重新登录以使更改生效。
我知道这是一个“我太”的解决方案,但我真的很懒,并没有找到任何其他解决方案来吸引我天生的冷漠...... :)
对于VirtualBox(5.0.24)Host = Mac(El Capitan)和Guest = RHEL(7.2)
启动RHEL Guest VM并打开终端。确保安装了开发人员工具。
sudo yum groupinstall 'Developer Tools'
并且内核头文件包打包,以便Guest Additions脚本可以更新内核。
sudo yum install kernel-devel*
一旦准备就绪,就可以安装Guest Additions。选择正在运行的VM后,转到VirtualBox菜单并选择Devices - > Insert Guest Additions CD image ...
允许挂载发生几秒钟,然后启动安装脚本。一旦他们点击了访客VM中弹出的对话框中的“运行”按钮。
脚本完成后,右键单击桌面上的CD图标,然后选择“弹出”。然后关闭来宾VM。
使用终端在您的主机系统中创建共享文件夹,我通常将其放在我的文档文件夹中,并确保您的用户可以访问它。
sudo mkdir ~/Documents/RhelShared
sudo chmod 755 <user> ~/Documents/RhelShared
在Oracle VM Virtual Box Manager中,选择您的VM,然后单击“Shared folders”配置元素。在下一个对话框中,单击“文件夹列表”右侧的“添加文件夹”图标。
然后在弹出窗口中选择您刚刚创建的主机文件夹作为文件夹路径,并为其提供将由访客VM使用的文件夹名称,同时勾选“自动安装”复选框。
重新启动来宾VM后,在主机上启动终端,并检查与正在运行的VirtualBox Guest进程关联的用户是您的用户,非常可能,还是在有权访问Shared文件夹的组中。
ps aux | grep VirtualBoxVM
然后,根据访客VM上终端中的几个先前答案,将您的用户添加到vboxsf组。
sudo usermod -a -G vboxsf <user>
注销并再次启动以获取更改。
共享文件夹现在应该可用并可以sf_rhelshared访问,假设您使用的名称与我在上面的弹出窗口中使用的名称相同。
澄清上一篇文章:
VBoxManage命令是:
VBoxManage setextradata <VM_NAME> VBoxInternal2/SharedFoldersEnableSymlinksCreate/<SHARE_NAME> 1
问题是默认情况下共享文件夹的权限设置为不允许符号链接。您只需几个简单的步骤即可启用它们。
Machine > Settings > General > Name
的机器名称将用户添加到vboxsf组后,您可能需要完全注销gnome / xfce / ???会话,因为很久以前有人决定在第一次登录窗口系统时应该缓存组关联。
或者去老学校:
% newgrp vboxsf
在您要用于访问该文件夹的任何shell中。幸运的是,newgrp为自己查找组列表并且不使用缓存的值。您仍然需要注销并重新登录以从shell以外的其他内容访问该文件夹。