在这里寻找一些见解:
我无法从不强制执行 -classic 选项的快照应用程序(例如 VLC 和 chromium)访问 /home/user/ 下的已挂载文件夹。我在几个地方读到,“严格”快照应用程序可能无法访问挂载在 /media 或 /home/user/ 之外的卷,但没有任何地方提到挂载在 /home/user/ 内的卷也可能面临权限问题。
这些卷是通过我的根 crontab (@reboot) 中的挂载指令挂载的 NTFS 卷。例如,Slack(在我的设置中默认安装在 snap --classic 下)可以正常访问它们。
该设置是双启动 Win10/Ubuntu 20.04。
知道可能是什么问题吗?
答案1
由 snap 软件包配置权限并访问主文件夹或已安装的设备。如果您是 snap 软件包的创建者,您可以自己启用权限,或者您需要在 Snapcraft 论坛上明确请求它为您启用您正在创建的特定软件包的权限。
这些权限称为interfaces
,您可以在以下位置找到完整列表https://snapcraft.io/docs/supported-interfaces列表中的自动连接,这意味着打包者可以自行配置它们,而无需请求许可。但那些没有自动连接,他们必须访问https://forum.snapcraft.io/并发起一个新线程请求为他们的包启用该功能。
您要询问的两个接口是personal-files
和removable-media
。这两个都不是自动连接。
这里有接口对于 LibreOffice snap 包:
$ snap interfaces libreoffice
Interface Plug Slot Notes
audio-playback libreoffice:audio-playback :audio-playback -
bluez libreoffice:bluez - -
content[gnome-3-28-1804] libreoffice:gnome-3-28-1804 gnome-3-28-1804:gnome-3-28-1804 -
content[gtk-3-themes] libreoffice:gtk-3-themes gtk-common-themes:gtk-3-themes -
content[icon-themes] libreoffice:icon-themes gtk-common-themes:icon-themes -
content[sound-themes] libreoffice:sound-themes gtk-common-themes:sound-themes -
cups-control libreoffice:cups-control :cups-control -
desktop libreoffice:desktop :desktop -
desktop-legacy libreoffice:desktop-legacy :desktop-legacy -
gsettings libreoffice:gsettings :gsettings -
home libreoffice:home :home -
network libreoffice:network :network -
network-bind libreoffice:network-bind :network-bind -
opengl libreoffice:opengl :opengl -
pulseaudio libreoffice:pulseaudio :pulseaudio -
removable-media libreoffice:removable-media :removable-media -
screen-inhibit-control libreoffice:screen-inhibit-control :screen-inhibit-control -
unity7 libreoffice:unity7 :unity7 -
wayland libreoffice:wayland :wayland -
x11 libreoffice:x11 :x11 -
removable-media
在列表中,并且他们在这个帖子中请求许可。
因此,如果 snap 包无法打开可移动媒体,那么就是打包者没有请求许可的问题removable-media
,或者他们可能已经请求过但被拒绝了。
话虽如此,您可以使用--devmode
参数绕过 snap 包安全保护。这样您就可以获得完全访问权限,就像您安装了 deb 包一样。请注意,您需要确保 snap 包没有问题,因为任何人都可以在 Snap Store 上创建 snap 包,并且您将禁用此包的所有安全保护。
具体操作如下:
sudo snap install somesnappackage --devmode