Ubuntu 客户机在由 Oracle VirtualBox 5.2.18 提供支持的虚拟机中运行。Virtualbox 共享文件夹在此运行良好,直到从 16.04 升级到 Bionic Beaver。升级后,客户的 Web 浏览器无法打开 VB 共享文件夹(例如,填写文件上传到网站的表单)。尝试从“打开文件”对话框导航到共享文件夹时弹出错误消息:.... 权限被拒绝。但是,离开浏览器然后从 Nautilus 手动导航到共享文件夹可以正常工作。
所有 Web 浏览器实例均以当前用户身份运行,因此可以毫无问题地从 Nautilus 查看和操作共享文件夹。此外,18.04 中的文件所有权、组和访问模式与 16.04 备份中的相同。浏览器是 Chromium,但 Firefox 也会出现问题。
/etc/fstab
不包含任何用于挂载 vboxsf 类型的行,在 16.04 备份中也能正常工作。
用户,浏览器正在运行,并且本地登录到 Beaver 并使用 Nautilus 手动测试共享文件夹访问的用户属于“vboxsf”用户组。该分配已被 Beaver 升级安装删除。挂载点是/media/sf_exchange
:
$ ls -alh /media
total 44K
drwxr-xr-x 12 root root 4.0K Aug 18 19:25 .
drwxr-xr-x 24 root root 4.0K Aug 16 20:38 ..
drwxrwx--- 1 root vboxsf 680 Aug 18 22:10 sf_exchange
...
已安装的客户添加版本与使用的 Virtual Box 版本同步。
可能的原因和可能的解决方案是什么?
=====================
根据 T 先生的有趣提示进行更新
$ sudo cat /sys/kernel/security/apparmor/profiles | grep .*chrom.*
snap.chromium.chromium (enforce)
snap-update-ns.chromium (enforce)
/usr/lib/lightdm/lightdm-guest-session//chromium (enforce)
$
在从 Chromium 的打开文件对话框导航到共享文件夹的时间戳对应的系统日志中还发现了以下内容:
AVC apparmor="DENIED" operation="open" profile="snap.chromium.chromium" \
name="/media/sf_exchange/" pid=4288 comm="pool" requested_mask="r" \
denied_mask="r" fsuid=1000 ouid=0
$ sudo cat /var/lib/snapd/apparmor/profiles/snap.chromium.chromium | grep exchange
$ sudo cat /var/lib/snapd/apparmor/profiles/snap.chromium.chromium | grep -e '/media'
$
$ sudo find / -path *apparmor* -name *snap.chromium.chromium*
/var/lib/snapd/apparmor/profiles/snap.chromium.chromium
/var/cache/apparmor/snap.chromium.chromium
find: ‘/run/user/1000/gvfs’: Permission denied
$
so no explicit rule to forbid mount point. How to find then the blocking rule?
之前报告的 Firefox 问题已不再重现。
答案1
我猜这是 apparmor 的问题。以下命令将禁用 AppArmor,直到重新启动:
sudo systemctl stop apparmor
如果在禁用 AppArmor 的情况下它可以正常工作,您可以编辑或禁用 Firefox 的 AppArmor 配置文件。