Ubuntu虚拟机配置文件共享
虚拟机中配置文件夹共享是一种十分便利的操作,能够实现跨环境对同一文件直接访问而不必反复压缩传递副本。同时文件共享支持改动热同步,这在维护复杂文件例如交叉编译环境中尤为实用。本文以VirtualBox中Ubuntu环境演示配置文件共享的几种方式以及权限管理。环境宿主机 Windows 10虚拟机 Ubuntu 18.04.2虚拟化工具 VirtualBox 6.1配置文件共享对于正在运行的虚拟机,在
虚拟机中配置文件夹共享是一种十分便利的操作,能够实现跨环境对同一文件直接访问而不必反复压缩传递副本。同时文件共享支持改动热同步,这在维护复杂文件例如交叉编译环境中尤为实用。本文以VirtualBox中Ubuntu环境演示配置文件共享的几种方式以及权限管理。
环境
- 宿主机 Windows 10
- 虚拟机 Ubuntu 18.04.2
- 虚拟化工具 VirtualBox 6.1
配置文件共享
对于正在运行的虚拟机,在设备-共享文件夹中打开编辑。
- 共享文件夹路径:宿主机中想要共享的文件夹路径。
- 共享文件夹名称:宿主机中想要共享的文件夹名称,选择上一项后自动填充。
- 挂载点:共享文件虚拟机中出现的位置。对于Liunx是路径;对于Windows是盘符。
- 只读分配:虚拟机对被共享文件只有读权限。
- 自动挂载:虚拟机启动后自动将共享文件夹载入到挂载点。(如果挂载点不存在或留空将会交由虚拟机自动处理。默认Linux是挂载到/media/sf_myfiles,Windows是从Z:开始寻找未被使用的盘符。)
- 固定分配:共享会被保存到设置中,否则本次共享是一次性的,重启机器后不再共享。

也可以在宿主机的命令行中使用如下格式的代码配置文件共享:VBoxManage sharedfolder add "VM name" --name "sharename" --hostpath "C:\test"
可选参数:--transient非固定分配。--readonly只读分配。
符号链(软连接)如果宿主机是Linux环境,使用VBoxManage setextradata "VM name" VBoxInternal2/SharedFoldersEnableSymlinksCreate/sharename 1
可以让文件共享变为符号链实现而非索引节点。
访问权限控制
出于安全考虑,VirtualBox创建的共享文件夹默认所属组为vboxsf,对非root用户做了读写权限限制,故非root用户每次访问时需要密码且不能随意拷贝。
root用户不受影响,否则可以通过以下几种方式获得对共享文件夹的完全控制
手动挂载
将共享的文件重新挂载到本用户指定的位置
sudo mount -t vboxsf -o uid=1000,gid=1000 sharename /home/<user>/vboxshare
-o uid=1000,gid=1000指定用户,可以省略。sharename共享文件名,也即默认挂载位置。/home/<user>/vboxshare本用户指定的新位置。
完成后可以在新位置找到被挂载的共享文件,此时已经拥有完整操作权限。
群组控制
将用户加入vboxsf组,获取所有共享文件权限,重启后生效。sudo usermod -aG vboxsf username
可以使用$(whoami)指定当前用户
组数据库默认位置:/etc/group
复制样本
使用cp -r dir1 dir2命令将共享文件从挂载点拷贝到其他位置再获取权限。注意,这种方式本质上没有修改共享文件,仅仅是文件的单方面传递而非共享。
文件共享相当于C语言中的指针传递,每个受共享的用户本质上都是在对同一份文件进行操作,所以设置严格的权限控制能够避免意外地修改文件。
How to access a shared folder in VirtualBox?
VirtualBox manual Chapter 4. Guest Additions.
常用linux用户管理指令
VirtualBox命令行工具的使用
更多推荐



所有评论(0)