Поддерживаются ли AppImages на базе Electron больше в Ubuntu?

Вопрос или проблема

У меня установлен стандартный KUbuntu 24.04.
Одно, что я заметил, если я загружаю AppImage, содержащий приложение Electron GUI, оно не запускается:

[254192:0212/190140.946364:FATAL:setuid_sandbox_host.cc(158)] Найден двоичный файл помощника SUID песочницы, но он не настроен правильно. Вместо того чтобы запускаться без песочницы, я прекращаю выполнение сейчас. Вам необходимо убедиться, что /tmp/.mount_WhalebptLZLj/chrome-sandbox принадлежит root и имеет режим 4755.

Я считаю, что они работали на предыдущей LTS Ubuntu 20.04. Я пробовал консоль управления Outline, а также свежий выпуск Whalebird. Они не работают. Очевидно, есть целый бла бла yadda yadda относительно недавних изменений AppArmor в Ubuntu, влияющих на Electron, но как пользователь, в конечном итоге, стоит ли ожидать, что Electron-based AppImages будут работать для меня в будущем на Ubuntu, или это официально мертвая технология? В их Wiki я вижу в основном мертвое ПО с последним коммитом 3-6 лет назад.

Я исключу настройку системных параметров с помощью systemctl и буду придерживаться только официальной процедуры установки “скачать AppImage, изменить владельца файла, запустить его”.

Ответ или решение

Теория

AppImage — это формат распространения приложений для Linux, позволяющий упаковывать приложения и все их зависимости в один файл. Это делает запуск приложений быстрым и удобным, избегая проблем с конфликтами зависимостей. Electron, в свою очередь, это фреймворк для создания кроссплатформенных настольных приложений с использованием веб-технологий. Такие приложения можно упаковывать в AppImage для последующего запуска на Linux.

Однако, с текущими изменениями в Ubuntu, возникают проблемы, в частности с тем, как обрабатываются файлы с правами доступа и защитой песочницы. Сообщение об ошибке конкретно указывает на проблему с SUID sandbox helper, требуя наличия прав доступа и определенного режима файла для правильной работы песочницы.

Пример

Рассмотрим пример проблемы из вопроса. Пользователь пытается запустить AppImage, содержащий Electron-приложение, на KUbuntu 24.04, и получает следующее сообщение об ошибке:

FATAL:setuid_sandbox_host.cc(158)] The SUID sandbox helper binary was found, but is not configured correctly. Rather than run without sandboxing I'm aborting now. You need to make sure that /tmp/.mount_WhalebptLZLj/chrome-sandbox is owned by root and has mode 4755.

Это указывает на некорректно настроенный бинарный файл песочницы SUID. Файлы SUID или "Set User ID upon execution" имеют специально настроенные права (4755), которые позволяют некоторым программам исполнять код с правами владельца файла, что критично для приложений, которым нужны повышенные привилегии, такие как запуск в песочнице.

Применение

В данном контексте возникшие проблемы частично связаны с изменениями в системе безопасности Ubuntu, в частности с механизмом AppArmor, который может ограничивать доступ приложений к системе. AppArmor теперь более строго контролирует приложения, использующие функции ядра, такие как песочница Electron. Это может вызывать затруднения с запуском Electron-базированных AppImage на новых версиях Ubuntu.

На практике это значит, что пользователи, которые не хотят вручную изменять параметры безопасности или использовать привилегии администратора для корректировки настроек файлов или служб (например, с помощью systemctl), могут сталкиваться с проблемами запуска таких приложений в AppImage. Это ограничение особенно заметно для пользователей, придерживающихся только стандартных процедур установки и запуска приложений.

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

Однако указывать, что технология Electron в совокупности с AppImage "мертва", будет некорректно. Скорее, это технология, которая претерпевает изменения и требует адаптации под новые системные требования и условия работы.

В долгосрочной перспективе можно ожидать, что сообщество разработчиков найдет решения и новые практики, позволяющие продолжать использовать AppImage для Electron-приложений на новых версиях Ubuntu. Это может включать новые патчи, изменения в инструментальных сборах или новые подходы к упаковке и развертыванию приложений.

Пока же, для пользователя остаётся вариант использовать более традиционные пути установки приложений, такие как использование системных пакетных менеджеров (например, Snap, Flatpak или через официальные репозитории), предоставляющих более гарантированное соблюдение всех системных и зависимых требований.

Оцените материал
Добавить комментарий

Капча загружается...