Вопрос или проблема
Я только что обновился до 24.04 и столкнулся с первыми проблемами. Я не могу запустить свою Arduino IDE после обновления. Если я попробую это сделать в терминале, я получаю предупреждение.
“FATAL:setuid_sandbox_host.cc(158)] The SUID sandbox helper binary был найден, но не настроен правильно. Вместо того чтобы запускаться без песочницы, я сейчас прерываюсь. Вам нужно убедиться, что /home/stevetux/ArduinoLatest/arduino-ide_2.3.2_Linux_64bit/chrome-sandbox принадлежит root и имеет режим 4755.”
Я подумал о том, чтобы просто изменить разрешения для arduino-ide_2.3.2_Linux_64bit/chrome-sandbox
, но если я попытаюсь открыть мой arduino-lab-micropython-ide, другой песочнице (MicroPythonIDE/chrome-sandbox) нужно изменить разрешения.
Обе эти IDE работали идеально под 23.10, и я не знаю, сколько других приложений затронуто, так как я только что обновился. Есть ли решение этой проблемы, которое не связано с изменением разрешений для большого количества файлов?
Редактировать: я обнаружил, что могу запускать IDE, если добавляю –no-sandbox в конце команды запуска. Но я не знаю, есть ли у этого какие-либо последствия для безопасности или другие. Буду признателен за совет.
Последствия использования --no-sandbox
заключаются в том, что ваша Arduino IDE не будет работать в песочнице. Вместо этого она будет работать в обычной среде.
Вы должны сделать /home/stevetux/ArduinoLatest/arduino-ide_2.3.2_Linux_64bit/chrome-sandbox
бинарным файлом setuid
root
(принадлежащим root
, использующим UID:GID из прав собственности на файл вместо использования UID:GID $USER
). Требуется права root
для настройки песочницы. Тогда ваша Arduino IDE будет работать в своей собственной песочнице. То же самое должно применяться к вашей другой IDE.
Проблема возникает из-за того, что Ubuntu 24.04 прекратил поддержку непривилегированных пространств имен ядра, на которые Arduino IDE (и другие приложения) полагаются для своих песочниц.
Чтобы решить эту проблему, вы можете создать новый профиль AppArmor для Arduino IDE. Предполагая, что вы установили его в /home/username/bin/arduino
(это имя файла полностью), вы можете сделать нечто подобное sudo vim /etc/apparmor.d/home.username.bin.arduino
(или nano, или другим редактором) и записать:
abi <abi/4.0>,
include <tunables/global>
profile arduino /home/username/bin/arduino flags=(unconfined) {
userns,
include if exists <local/arduino>
}
Затем выполните команду sudo service apparmor reload
В качестве альтернативы, которая все еще позволяет запускать без --no-sandbox
, вы можете отключить эту новую политику Ubuntu, выполнив команду sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=1
У меня установлена Ubuntu 24.04.1, и, похоже, версия Arduino IDE 2.3.4 не запускается на ней. Пробовал app image и исполняемый файл. Appimage завершается ошибкой с песочницей, и –no-sandbox не позволяет ему запускаться. Исполняемый файл не может найти динамически связанную библиотеку.
При использовании опции –no-sandbox с appimage появляется пустое окно под названием “sketch_jan1a|Arduino IDE 2.3.4”.
Кто-нибудь добился работы? Версия Arduino 2.3.3 отлично работает на моей системе. Также у меня установлена версия 1.8 (она все еще оказывается полезной).
Ответ или решение
В последнее время всё больше пользователей сообщают о проблемах с запуском Arduino IDE на Ubuntu 24.04. Если вы столкнулись с ошибкой, связанной с "SUID sandbox helper binary", это может быть результатом изменений в способах работы Ubuntu с непривилегированными пространствами имён ядра, которые используются различными приложениями, включая Arduino IDE.
Проблема
После обновления системы до версии 24.04 Arduino IDE перестало работать из-за некорректной настройки бинарного файла "chrome-sandbox". Ошибка гласит, что этот файл должен принадлежать пользователю root и обладать режимом доступа 4755. Хотя существует соблазн просто изменить права доступа, это не всегда может быть наилучшим решением.
Временное решение
Вы можете временно обойти эту проблему, добавив параметр --no-sandbox
к команде запуска Arduino IDE. Однако это означает, что приложение будет работать вне песочницы, что потенциально может снизить уровень безопасности.
Шаги временного решения:
- Откройте терминал.
- Запустите Arduino IDE командой:
./arduino --no-sandbox
Но важно понимать, что такое решение несет в себе риски для безопасности, поскольку приложения в песочнице защищены от влияния других процессов.
Долгосрочные решения
-
Настройка прав доступа:
- Убедитесь, что файл
chrome-sandbox
принадлежит пользователю root и имеет режим доступа 4755.sudo chown root:root /home/stevetux/ArduinoLatest/arduino-ide_2.3.2_Linux_64bit/chrome-sandbox sudo chmod 4755 /home/stevetux/ArduinoLatest/arduino-ide_2.3.2_Linux_64bit/chrome-sandbox
- Убедитесь, что файл
-
Настройка AppArmor:
- Создайте профиль для Arduino IDE, чтобы разрешить использование пространств имён ядра.
- Откройте файл с настройками AppArmor:
sudo vim /etc/apparmor.d/home.username.bin.arduino
- Добавьте следующие строки:
abi <abi/4.0>, include <tunables/global> profile arduino /home/username/bin/arduino flags=(unconfined) { userns, include if exists <local/arduino> }
- После этого перезагрузите настройки AppArmor:
sudo service apparmor reload
-
Изменение системных параметров:
- Если решение выше не помогает, попробуйте отключить новую политику Ubuntu:
sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=1
- Если решение выше не помогает, попробуйте отключить новую политику Ubuntu:
Заключение
Хотя возникает соблазн быстро решить проблему изменением прав доступа, важно помнить о последствиях для безопасности. В долгосрочной перспективе рекомендуется настроить среду выполнения правильно через AppArmor или изменить системные параметры, чтобы обеспечить надежную и безопасную работу Arduino IDE. Выполнение вышеупомянутых шагов поможет минимизировать риски и обеспечить правильное функционирование вашего ПО на Ubuntu 24.04.