Для Flatpak подготовлена технология управляемого доступа к ресурсам вне контейнера
8 июля 2016 года
Маттиас Класен (Matthias Clasen), лидер Fedora Desktop Team и участник GNOME Release Team, объявил о первом выпуске системы контролируемого обращения к внешним ресурсам для самодостаточных контейнеров приложений Flatpak. Для решения задач обращения к внешним ресурсам из контейнера, таким как файлы хост-системы, во flatpak изначально применялось монтирование внешних директорий в режиме bind (в snap доступ регулируется через AppArmor), что требует точной информации к каким ресурсам требуется доступ.
Для упрощения работы с внешними ресурсами для Flatpak предложена концепция порталов, реализованная через высокоуровневый API, позволяющий приложению запросить доступ к таким операциям, как открытие внешнего файла, открытие URL, вывод на печать, создание скриншота, вывод уведомления, блокировка вызова хранителя экрана, получения данных о состояния сети и информации о прокси. Указанный API удалось интегрировать с библиотекой GTK+, что позволяет обойтись без модификации приложений. Так, обработчик Portals API вызывается при обращении приложения к штатным функциям GTK, например, когда программа пытается выбрать файл через GtkFileChooserNative или вывести информацию на печать через GtkPrintOperation. Взаимодействие с фронтэндом из изолированного окружения осуществляется через DBus.
Особенностью системы порталов является то, что решение о предоставлении доступа принимается пользователем, а не изначально предопределяется составителем пакета, который не может предугадать какой файл захочет обработать в изолированном приложении пользователь, поэтому обычно доступ открывается ко всей домашней директории. При обращении к обрабатываемым через Portals API функциям вызывается специальный обработчик, который показывает пользователю диалог подтверждения операции, по аналогии с динамическими межсетевыми экранами. В случае, если пользователь подтвердит операцию, предоставляется доступ к ресурсу.
В настоящее время доступен первый выпуск модуля xdg-desktop-portal-gtk для интеграции с GTK+, а также предложен набор исправлений к GTK+, обеспечивающий прозрачную для приложений интеграцию с системой порталов. Данные изменения уже приняты в основную ветку GTK+ и будут включены в состав выпуска 3.22. При этом технология позиционируется как не зависящая от конкретных рабочих столов и в разработке находится аналогичный модуль для Qt.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.