为什么 Snap 软件包在实际使用中并未经过沙盒处理,却被宣传为“沙盒化”

为什么 Snap 软件包在实际使用中并未经过沙盒处理,却被宣传为“沙盒化”

我可以在我的 Ubuntu 20.04 计算机上打开默认的 Chromium Snap。然后我右键单击默认主页,单击Save As,导航到我的~/home目录,然后可以继续将.html文件保存在我的主目录的任何位置。

为什么 Snap 软件包在实际使用中并未经过沙盒处理,却被宣传为“经过沙盒处理”?如果 Chromium snap 可以读取/写入我的主目录,那么 Chromium 程序,在本质上,有我城堡的钥匙。

普通人(例如我)最熟悉智能手机环境,并且可能将沙盒理解为类似这样的含义:

未经系统所有者明确许可,应用程序或程序不得访问任何系统资源。

这是我习惯的 Android 和 iOS 模式。Ubuntu 文档他们似乎是这么说的,但事实并非如此:

...每个包都经过沙盒处理,以便它在受限的环境中运行,与系统的其余部分隔离......

或者,我这里遗漏了什么吗?

答案1

铬卡扣封装得到适当的限制(无经典的限制)。Chromium 的 snap 封装开发人员挑选了合适的连接,以便封装得到很好的限制。

要查看连接列表,请运行以下命令。您可以使用 snap 包访问您的主目录,该访问权限是根据 Snap Store 上的请求根据具体情况启用的。

$ snap connections chromium
Interface                 Plug                               Slot                            Notes
audio-playback            chromium:audio-playback            :audio-playback                 -
audio-record              chromium:audio-record              :audio-record                   -
bluez                     chromium:bluez                     :bluez                          -
browser-support           chromium:browser-sandbox           :browser-support                -
camera                    chromium:camera                    :camera                         -
content[gtk-3-themes]     chromium:gtk-3-themes              gtk-common-themes:gtk-3-themes  -
content[icon-themes]      chromium:icon-themes               gtk-common-themes:icon-themes   -
content[sound-themes]     chromium:sound-themes              gtk-common-themes:sound-themes  -
cups-control              chromium:cups-control              :cups-control                   -
desktop                   chromium:desktop                   :desktop                        -
gsettings                 chromium:gsettings                 :gsettings                      -
home                      chromium:home                      :home                           -
joystick                  chromium:joystick                  :joystick                       -
mount-observe             chromium:mount-observe             -                               -
mpris                     -                                  chromium:mpris                  -
network                   chromium:network                   :network                        -
network-bind              chromium:network-bind              :network-bind                   -
network-manager           chromium:network-manager           -                               -
opengl                    chromium:opengl                    :opengl                         -
password-manager-service  chromium:password-manager-service  -                               -
personal-files            chromium:chromium-config           :personal-files                 -
pulseaudio                chromium:pulseaudio                -                               -
raw-usb                   chromium:raw-usb                   -                               -
removable-media           chromium:removable-media           :removable-media                -
screen-inhibit-control    chromium:screen-inhibit-control    :screen-inhibit-control         -
u2f-devices               chromium:u2f-devices               :u2f-devices                    -
unity7                    chromium:unity7                    :unity7                         -
upower-observe            chromium:upower-observe            :upower-observe                 -
x11                       chromium:x11                       :x11                            -

答案2

安装的 Snap--classic没有经过沙盒处理。

...从man snap

--classic
              Put snap in classic mode and disable security confinement

限制某些程序更有意义,限制其他程序则更少。

答案3

实际上,它可能比你想象的更接近 Android 模型。

对系统其余部分的 Snap 访问由一组接口。一个接口用于网络,另一个接口用于蓝牙,另一个接口用于 /home 目录(仅顶层),另一个接口用于整个 /home 目录,等等。

快照允许使用的接口列在Snapcraft YAML 文件。Snapd 使用该 YAML 文件来实现访问控制。这旨在设置应用程序正常运行的基线最低访问权限。

安装 snap 后,您(管理员)可以使用 snapd 明确关闭(或打开)任何这些接口。您拥有控制权。

相关内容