Приложения Flatpak становятся все более популярными. Их особенность в том, что в приложение уже включены все необходимые библиотеки для установки, работы, и обновлений. Благодаря этому такие приложения работают практически на любой операционной системе семейства Linux.
Каждое Flatpak-приложение создается и запускается в изолированной среде, которая называется «песочницей». По умолчанию приложение может получить доступ только к содержимому своей «песочницы». Остальные доступы необходимо настраивать дополнительно. Если при использовании приложения Flatpak появляется сообщение об отсутствии доступа к какому-то ресурсу системы, значит необходимо настроить доступ для этого приложения.
¶ Настройка доступов приложений Flatpak с помощью утилиты "Настройки Flatpak"
Для настройки доступов удобно использовать приложение "Настройки Flatpak", оно доступно для установки в Магазине приложений X C01-03 OS:
В графическом интерфейсе утилиты отображается список приложений и доступные для них настройки:
Оконная система X11 - разрешить приложению открываться в оконном интерфейсе X11;
Оконная система Wayland - разрешить приложению открываться в оконном интерфейсе Wayland;
Возврат к оконной системе Х11 - разрешить приложению открываться в окне X11, в случае, если Wayland недоступен. Для корректной работы необходимо включить сокет "Оконная система X11";
Звуковой сервер PulseAudio - разрешить приложению воспроизводить звуки или получать доступ к микрофону при использовании PulseAudio;
Сессионная шина D-Bus - разрешить приложению доступ ко всей шине сеанса;
Системная шина D-Bus - разрешить приложению доступ ко всей системной шине;
SSH-агент - разрешить приложению использовать аутентификацию по SSH;
Смарт-карты - разрешить приложению использовать смарт-карты;
Система печати - разрешить приложению использовать системы печати;
Каталоги GPG агента - разрешить приложению доступ к каталогам GPG-агента.
Inherit Wayland Socket - разрешить приложению доступ к ограниченным функциям Wayland
GPU ускорение - разрешить приложению доступ к прямому рендерингу графики, чтобы воспользоваться преимуществами ускорения графического процессора (видеокарты);
Устройства ввода - разрешить доступ к устройствам ввода;
Виртуализация - разрешить приложению доступ к виртуализации;
Распределяемая память - разрешить приложению доступ к общей памяти (память, к которой могут одновременно обращаться несколько программ для обеспечения коммуникации между ними или для избежания избыточных копий);
Все устройства (пр. веб-камера) - разрешить приложению доступ ко всем устройствам, таким как веб-камера и внешние устройства.
Системные вызовы разработки (пр.ptrace) - разрешить приложению доступ к определённым системным вызовам, таким как ptrace() и perf_event_open().;
Программы с других архитектур - разрешить приложению выполнять программы для ABI, отличного от того, который поддерживается системой изначально;
Bluetooth - разрешить приложению использовать Bluetooth;
Шина сети контроллеров - разрешите приложению использовать разъёмы canbus. Для этого также необходимо иметь доступ к сети;
Распределяемая память приложения - разрешить приложению совместно использовать его /dev/shm между экземплярами одного и того же идентификатора $FLATPAK_APP_ID. Представлен специально для пакета Steam (Flatpak), чтобы использовать его /dev/shm для изолированных игр.
Все системные файлы - разрешить доступ для чтения и записи ко всей файловой системе. Всё, что недоступно для записи пользователем, будет доступно только для чтения;
Все системные библиотеки, исполняемые файлы и статические данные - разрешить доступ для чтения и записи к системным библиотекам, расположенным в /usr. Поскольку для записи в этот каталог требуется root-доступ, разрешение будет доступно только для чтения;
Все конфигурации системы - разрешить доступ для чтения и записи к системным конфигурациям, расположенным в /etc. Поскольку для записи в этот каталог требуется root-доступ, разрешение будет доступно только для чтения;
Все пользовательские файлы - разрешить доступ для чтения и записи к пользовательскому каталогу ($HOME или ~/);
Другие файлы - разрешите доступ для чтения и записи к нужному вам каталогу. Необходимо вручную прописать путь до каталога и в конце дописать атрибут, соответствующий правам доступа, :ro (read only, только чтение) или :rw (read-write, чтение и запись). Например: ~/Загрузки:rw.
Обратите внимание! При ручном указании пути к файлам нет необходимости подтверждать запись строки клавишей Enter или сохранять настройки. Просто добавьте новую строку и введите нужные данные.
Файлы - разрешить приложению доступ к целевому каталогу, ограничивая доступ к нему другим приложениям. Начиная с каталога пользователя ($HOME или ~/), целевой каталог будет переназначен в каталог приложения (~/.var/app/$FLATPAK_APP_ID/[PATH]), если у него нет доступа на запись в целевой каталог. Например, указание в данной строке .mozilla назначит ~/.mozilla в ~/.var/app/org.mozilla.Firefox/.mozilla. Эта настройка также используется для приведения в порядок каталога пользователя, поскольку она предотвращает запись приложения в ~/.
Переменные - установите переменную окружения в приложении, чтобы сделать эту переменную доступной для приложения при его запуске. Например, можно добавить MOZ_ENABLE_WAYLAND=1 для Firefox, чтобы включить серверную часть Wayland.
Переговоры - разрешить приложению взаимодействовать с системными службами. Например, добавление org.freedesktop.Accounts позволит приложению получать доступ к истории входа пользователей в систему;
Владельцы - разрешить приложению владеть системными службами под заданным именем.
Переговоры - разрешить приложению взаимодействовать со службами сеансов. Например, добавление org.freedesktop.Notifications позволит приложению отправлять уведомления;
Владельцы - разрешить приложению владеть сеансовыми службами под заданным именем.
Микрофон - разрешить приложению использовать микрофон;
Динамики - разрешить приложению использовать динамики;
Камера - разрешить приложению использовать камеру;
Местоположение - разрешить приложению доступ к вашему местоположению.
Чтобы вернуть настройки в исходное состояние, нажмите вверху окна пункт «Восстановить», и все настройки вернутся к состоянию, в котором были после установки соответствующего приложения Flatpak.
После выполнения настроек доступов перезагрузка в приложении системы не требуется, достаточно перезапустить приложение Flatpak, для которого в настройках доступа были внесены изменения.
При написании данной статьи использовались материалы из официальной документации проекта Flatseal https://github.com/tchx84/Flatseal/blob/master/DOCUMENTATION.md Материалы распространяются под лицензией Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)