Ubuntu 上 VirtualBox 权限设置实用指南
一 基础权限与用户组
- 将当前用户加入 vboxusers 组,才能正常使用 USB、共享文件夹等需要内核驱动的功能:sudo usermod -aG vboxusers $USER(将 $USER 替换为你的用户名)。
- 注销并重新登录,或执行 newgrp vboxusers 使组权限立即生效。
- 如需开机自动启动虚拟机,还需配置自动启动数据库目录并继续将用户加入 vboxusers(见第三部分)。
二 共享文件夹权限与挂载
- 在虚拟机设置中添加共享文件夹:设备 → 共享文件夹 → 共享文件夹设置,建议勾选固定分配;记下共享的名称(不是宿主机路径)。
- 安装增强功能(提供 vboxsf 内核模块):sudo apt update && sudo apt install -y gcc make perl linux-headers-$(uname -r);挂载增强工具光盘后执行 sudo /mnt/cdrom/VBoxLinuxAdditions.run 并重启。
- 创建挂载点并挂载:mkdir -p ~/share;sudo mount -t vboxsf <共享名称> ~/share。
- 修复权限并授权当前用户:sudo chown -R root:vboxsf ~/share;sudo chmod -R 775 ~/share;sudo usermod -aG vboxsf $USER;newgrp vboxsf。
- 持久化自动挂载(/etc/fstab):echo “<共享名称> /home/<用户名>/share vboxsf defaults 0 0” | sudo tee -a /etc/fstab;测试:sudo mount -a。
- 常见问题与要点:
- 挂载点显示为 root:vboxsf 属正常,关键是把用户加入 vboxsf 组并设 775 权限。
- 路径含空格或特殊字符易出错,建议使用纯英文路径与名称。
- 若提示找不到模块或编译失败,确认已安装与当前运行内核匹配的 linux-headers。
三 开机自动启动与系统服务权限
- 创建自动启动数据库目录并设置权限:sudo mkdir -p /etc/vbox;sudo chgrp vboxusers /etc/vbox;sudo chmod 1775 /etc/vbox。
- 配置策略文件 /etc/vbox/autostart.conf:default_policy = deny;为对应用户添加 allow 与延迟,例如:zhangnq = { allow = true; startup_delay = 10; }。
- 设置数据库路径并开启某台虚拟机的自动启动:VBoxManage setproperty autostartdbpath /etc/vbox;VBoxManage modifyvm “<VM 名称>” --autostart-enabled on。
- 若报错 VERR_ACCESS_DENIED,检查用户是否在 vboxusers 组且对 /etc/vbox 有写权限(groups <用户名>;ls -ld /etc/vbox)。
四 常见故障排查清单
- 执行 vbox 命令或启动虚拟机报权限不足:确认当前用户在 vboxusers 组,注销/重新登录后再试。
- 共享文件夹只读或无法写入:确认挂载为 vboxsf,目录属组为 vboxsf 且权限为 775,当前用户已加入 vboxsf 组。
- 自动启动失败:核对 /etc/vbox 权限为 1775、用户属于 vboxusers,且 autostart.conf 对该用户设置了 allow。
- 增强功能安装失败:安装匹配当前内核的 linux-headers,确保已挂载增强工具光盘后再运行 VBoxLinuxAdditions.run。