Почему Snap-пакеты продаются как "песочница", когда в реальном использовании они не "песочница"

Я могу открыть по умолчанию оснастки хрома на моем компьютере Ubuntu 20.04. Затем я щелкну правой кнопкой мыши на домашней странице Defualt, нажмите Save As, перейдите к моему каталогу ~/home и можете продолжить сохранение файла .html где угодно в моем домашнем каталоге.

Почему пакеты оснастки продаются как "песочница", если они не используются в "песочнице" в реальном использовании? Если оснастка хрома может читать/записывать в мой домашний каталог, то у программы для хрома, , по сути, , есть ключи от моего замка.

Обычный человек (например, я) больше всего знаком со средой смартфонов и, скорее всего, понимает песочницу как нечто вроде:

Приложение или программа не должны иметь доступ к какому-либо системному ресурсу без получения владельцем системы явного разрешения на этот ресурс.

Это парадигма для Android и iOS, к которой я привык. И глядя на документацию Ubuntu, кажется, что они утверждают это, когда на самом деле это не так:

... каждый пакет находится в песочнице, так что он работает в ограниченном окружении, изолированном от остальной системы...

Или, я что-то упускаю из виду?

1
задан 18 September 2020 в 18:31

3 ответа

Пакет оснастки хрома правильно ограничен (нет классического ограничения). Разработчики пакета 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                            -
1
ответ дан 4 January 2021 в 08:22

На самом деле, он, возможно, ближе к модели Android, чем вы думаете.

Доступ к остальной части системы определяется набором интерфейсов . Один интерфейс для сети, другой интерфейс для bluetooth, другой интерфейс для каталога / home (только верхний уровень), еще один интерфейс для всего каталога / home и т. Д.

Разрешенные интерфейсы для привязки перечислены в Snapcraft YAML-файл . Snapd использует этот файл YAML для управления доступом. Это предназначено для установки минимального базового уровня доступа для правильного функционирования приложения.

После установки оснастки вы (администратор) можете явно отключить (или включить) любой из этих интерфейсов с помощью snapd. Все под вашим контролем.

1
ответ дан 4 January 2021 в 08:22

Снапсы, установленные с помощью - classic , не изолированы.

... от man snap

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

Имеет смысл ограничить некоторые программы , и меньше других.

1
ответ дан 4 January 2021 в 08:22

Другие вопросы по тегам:

Похожие вопросы: