Ubuntu 下 VirtualBox 权限设置实用指南
一 前置检查与用户组
- 将当前登录用户加入 vboxusers,以获得管理虚拟机所需的权限:sudo adduser $USER vboxusers(需要重新登录或重启会话生效)。
- 在虚拟机内(客体 Ubuntu)安装 VirtualBox 增强功能(Guest Additions),否则共享文件夹、剪贴板、分辨率自适应等功能不可用。
- 若要在客体 Ubuntu 中访问共享文件夹,需将当前用户加入 vboxsf 组:sudo usermod -aG vboxsf $USER(注销并重新登录后生效)。
二 共享文件夹权限与挂载
- 在虚拟机设置 → 共享文件夹添加主机目录,勾选 自动挂载 与 固定分配(便于按固定路径访问)。
- 启动客体 Ubuntu 后,共享目录通常挂载于 /media/sf_<共享名>,其所有者为 root、所属组为 vboxsf。将当前用户加入 vboxsf 后即可读写:sudo usermod -aG vboxsf $USER,随后注销/重启会话。
- 若仍提示权限不足:
- 确认已安装增强功能;
- 确认用户已在 vboxsf 组(执行 groups 查看);
- 需要 root 访问时,可在客体 Ubuntu 中临时使用 sudo ls /media/sf_<共享名> 验证。
三 USB 设备权限
- 在主机的 Ubuntu 上安装 VirtualBox 扩展包(Extension Pack),版本需与 VirtualBox 一致。
- 将当前用户加入 vboxusers 组:sudo adduser $USER vboxusers(注销/重启生效)。
- 选中虚拟机 → 设置 → USB → 添加 USB 过滤器(选择你的 USB 设备)。
- 插入设备并启动虚拟机,设备将被捕获到虚拟机中。
- 旧版本或特定环境下,可能还需处理 usbfs 相关权限(如创建组并加入用户),但在现代发行版与较新版本 VirtualBox 中通常只需 vboxusers 即可。
四 开机自动启动与权限
- 创建用于存放自动启动数据库与配置的目录并设置权限:
sudo mkdir -p /etc/vbox
sudo chgrp vboxusers /etc/vbox
sudo chmod 1775 /etc/vbox
- 指定自动启动数据库路径:VBoxManage setproperty autostartdbpath /etc/vbox
- 为指定用户启用某台虚拟机的自动启动(示例用户为 zhangnq,虚拟机为 win2003):
VBoxManage modifyvm win2003 --autostart-enabled on
- 如需定义策略与延时,可在 /etc/vbox/autostart.conf 中配置,例如:
default_policy = deny
zhangnq = { allow = true; startup_delay = 10 }
- 常见报错 VERR_ACCESS_DENIED 多由用户未加入 vboxusers 或 /etc/vbox 目录权限不正确导致,按上文修正后重试。
五 常见故障排查
- 共享文件夹无权限:确认已安装增强功能、已将用户加入 vboxsf、目录挂载为 /media/sf_<共享名>,必要时注销/重启会话再试。
- 无法捕获 USB:确认已安装扩展包、用户属于 vboxusers、已添加 USB 过滤器并插入设备后再启动/捕获。
- 自动启动失败:检查 /etc/vbox 权限与属组、用户是否在 vboxusers、以及 autostart.conf 配置是否正确。