Вопрос или проблема
После обновления до версии 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
:
-
Извлеките AppImage:
./Obsidian-1.4.13.AppImage --appimage-extract
-
Переместите извлеченные файлы в
/opt
:sudo mv squashfs-root /opt/Obsidian
-
Установите владельца файла на
root
:sudo chown -R root: /opt/Obsidian
-
Установите правильные права доступа для файла
chrome-sandbox
:sudo chmod 4755 /opt/Obsidian/chrome-sandbox
-
Измените права доступа для подкаталогов, чтобы приложение могло их использовать:
sudo find /opt/Obsidian -type d -exec chmod 755 {} \;
-
Запустите приложение:
/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
.