Образ AppImage Obsidian – Помощник песочницы SUID найден, но не настроен правильно

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

После обновления до версии 24.04 я получаю сообщение Бинарный файл помощника SUID песочницы найден, но некорректно настроен. когда пытаюсь запустить этот файл приложения Electron AppImage. Вся ошибка выглядит следующим образом (пример для приложения Obsidian):


> ./Obsidian-1.4.13.AppImage


[21824:0430/094557.661436:FATAL:setuid_sandbox_host.cc(158)]
Бинарный файл помощника SUID песочницы найден, но некорректно настроен.
Я отказываюсь запускаться без песочницы и завершаю сейчас. Вам нужно убедиться, что /tmp/.mount_ObsidiOpBPaM/chrome-sandbox принадлежит root и имеет режим 4755.
Ловушка трассировки/остановки (core dumped)

Я не уверен, о чем идет речь; /tmp/.mount_ObsidiOpBPaM/chrome-sandbox не существует. Права на /tmp установлены на 4777, владелец root.

Как мне перезапустить приложение?

Примечание модератора: В данный момент существует проблема в AppArmor (ошибки Launchpad #2046844, #2064672 (исправление SRU для Noble) и #2072811 (ошибка регрессии, которая вернула это)), известная своими проблемами с песочницей AppImages и подобных на данный момент.

На данный момент нет оценки времени исправления этой проблемы. В связи с этим, если приложение, которое вы пытаетесь использовать, абсолютно критично для ваших нужд, вы можете использовать указанные здесь варианты для запуска приложения без песочницы. Однако будьте осторожны, так как это может быть опасно, так как приложение может напрямую изменять вещи в вашей системе.

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


Вы можете запустить свой appimage с опцией --no-sandbox:

./Obsidian-1.4.13.AppImage --no-sandbox

Вы также можете попробовать

 ./Obsidian-1.4.13.AppImage --disable-setuid-sandbox

Пожалуйста, смотрите также https://stackoverflow.com/q/24237933

Я только что заново скачал appimage, который теперь версии 1.6.7, но по-прежнему имеет ту же проблему, о которой вы говорили.

Кажется, я нашел какое-то безопасное решение. Я извлек appimage и установил извлеченные файлы в /opt/Obsidian. Сначала мы собираемся извлечь appimage:

~$ /home/mook/Obsidian-1.6.7.AppImage --appimage-extract

Теперь мы переместим извлеченные файлы в /opt/

~$ sudo mv /home/mook/squashfs-root /opt/Obsidian

Мы хотим, чтобы файлы принадлежали root:

~$ sudo chown -R root: /opt/Obsidian

Мы исправляем права доступа к файлу песочницы:

~$ sudo chmod 4755 /opt/Obsidian/chrome-sandbox

Некоторые подкаталогов доступны только для root из-за прав доступа, это мешает запуску приложения, нам нужно это тоже исправить:

~$ sudo find /opt/Obsidian -type d -exec chmod 755 {} \;

Теперь мы можем запустить приложение:

~$ /opt/Obsidian/AppRun
2024-07-31 06:43:51 Загружается основной пакет приложения /opt/Obsidian/resources/obsidian.asar
Игнорируется: Ошибка: ENOENT: нет такого файла или каталога, открыть '/home/mook/.config/obsidian/obsidian.json'
2024-07-31 06:43:52 Проверка обновлений с помощью Github
2024-07-31 06:43:52 Успех.
2024-07-31 06:43:52 Последняя версия 1.6.7
2024-07-31 06:43:52 Приложение обновлено.

Приложение запускается без жалоб на права доступа. Я также могу запустить приложение, дважды щелкнув на файле AppRun в моем файловом менеджере или через пункт меню после создания файла .desktop.


Похоже, что другие appimage на основе chrome имеют ту же проблему. Я использую приложение wire в качестве appimage, так как snap работал неправильно. Также для wire.appimage я выполнил эту процедуру, и это хорошо сработало.

Интересно, что appimages монтируются с опцией nosuid, насколько я вижу из findmnt. Это также происходит в системе 22.04, где те же appimages работают без жалоб на неправильные права доступа к файлу chrome-sandbox.

У меня такая же проблема после установки Kubuntu 24.04. Мое решение – добавить опцию монтирования nosuid к /tmp путем редактирования /etc/fstab

tmpfs                                     /tmp           tmpfs   defaults,noatime,nodiratime,nosuid,mode=1777 0 0

Если вам не страшно ослабить настройки безопасности, то этот способ работает для меня, который --no-sandbox и --disable-setuid-sandbox не делают.

sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0

Неудобство: вам нужно делать это каждый раз при загрузке.

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

Решение проблемы: "The SUID sandbox helper binary was found, but is not configured correctly" в Obsidian AppImage

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

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_ObsidiOpBPaM/chrome-sandbox is owned by root and has mode 4755.
Trace/breakpoint trap (core dumped)

Эта ошибка указывает на проблему с правами доступа и конфигурацией бинарного файла chrome-sandbox. Вот несколько способов решения:

1. Запуск без песочницы

Вы можете попытаться запустить приложение с параметрами, отключающими функциональность песочницы:

./Obsidian-1.4.13.AppImage --no-sandbox

или

./Obsidian-1.4.13.AppImage --disable-setuid-sandbox

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

2. Извлечение и установка приложения

Если первый метод не устраняет проблему, вы можете извлечь содержимое AppImage и установить его в /opt:

  1. Извлеките AppImage:

    ./Obsidian-1.4.13.AppImage --appimage-extract
  2. Переместите извлеченные файлы в /opt:

    sudo mv squashfs-root /opt/Obsidian
  3. Установите владельца файла на root:

    sudo chown -R root: /opt/Obsidian
  4. Установите правильные права доступа для файла chrome-sandbox:

    sudo chmod 4755 /opt/Obsidian/chrome-sandbox
  5. Измените права доступа для подкаталогов, чтобы приложение могло их использовать:

    sudo find /opt/Obsidian -type d -exec chmod 755 {} \;
  6. Запустите приложение:

    /opt/Obsidian/AppRun

3. Изменение параметров монтирования /tmp

Если проблема сохраняется, вы можете изменить параметры монтирования для директории /tmp, добавив опцию nosuid в файл /etc/fstab:

tmpfs /tmp tmpfs defaults,noatime,nodiratime,nosuid,mode=1777 0 0

4. Временное изменение настроек AppArmor

Если вы не против ослабить настройки безопасности, вы можете отключить ограничение AppArmor для пользовательских пространств, выполнив следующую команду:

sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0

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

Заключение

Этот набор решений должен помочь вам устранить проблемы связанные с запуском Obsidian AppImage после обновления до Ubuntu 24.04. Не забудьте учитывать риски безопасности, если решите использовать приложение без песочницы. Если вы хотите сохранить безопасность системы, рекомендуется остановиться на методе извлечения AppImage и установки его в /opt.

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

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