Как навсегда отключить новые ограничения создания пространств имен пользователей AppArmor в Ubuntu для запуска AppImage и веб-приложений?

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

Я хочу выполнить команду sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0 при запуске, чтобы включить работу etcher.

Как выполнить такую команду с sudo при запуске, не вводя пароль?

Резюме: Выполните следующую команду и перезагрузите.

echo 'kernel.apparmor_restrict_unprivileged_userns = 0' | 
  sudo tee /etc/sysctl.d/20-apparmor-donotrestrict.conf

Команда sudo на самом деле предназначена для повышения привилегий в интерактивной сессии – в частности, она ожидает получения пароля аутентифицированного пользователя через tty (или другой интерактивный механизм, указанный через SUDO_ASKPASS). В любое время, когда вы хотите выполнить команду с повышенными привилегиями не интерактивно, обычно есть лучший способ это сделать – например

  • через запись в crontab для root
  • через системную службу systemd

В случае с sysctl есть еще лучший вариант: через файл конфигурации drop-in. Из man sysctl.d:

ОПИСАНИЕ
   При загрузке systemd-sysctl.service(8) считывает конфигурационные файлы из
   указанных директорий, чтобы настроить параметры ядра sysctl(8).

Так что вы можете просто создать файл в /etc/sysctl.d и добавить туда имя = значение – либо с помощью вашего любимого текстового редактора, либо, например, используя

echo 'kernel.apparmor_restrict_unprivileged_userns = 0' | 
  sudo tee /etc/sysctl.d/20-apparmor-donotrestrict.conf

(кроме суффикса .conf, имя файла произвольно – я предлагаю выбрать что-то, что имеет значение для вас).

Перезагрузите.


Мое текущее ядро (5.15.0-105-generic), похоже, не имеет параметра kernel.apparmor_restrict_unprivileged_userns, поэтому я протестировал с kernel.unprivileged_userns_apparmor_policy вместо этого.


О возможных проблемах с безопасностью: Может показаться, что это открывает множество проблем с безопасностью, но это не так, потому что вредоносное ПО, получившее административные привилегии, может отменить такие ограничения и сделать что угодно. А вредоносное ПО с административными привилегиями в принципе может сделать всё. Единственный способ повысить безопасность – это придерживаться официальных репозиториев и не устанавливать ненадежные приложения вообще, а также не передавать им свой пароль. Другие дистрибутивы, такие как Mint и Solus, отменяют это изменение в apparmor. Другие дистрибутивы, такие как Debian, Fedora или Arch, вообще не имеют этого ограничения.

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

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

  1. Создайте конфигурационный файл для sysctl: Вам необходимо создать файл в каталоге /etc/sysctl.d/, который будет содержать настройку для вашего ядра. Вы можете сделать это с помощью следующей команды в терминале:

    echo 'kernel.apparmor_restrict_unprivileged_userns = 0' | sudo tee /etc/sysctl.d/20-apparmor-donotrestrict.conf

    Здесь мы создаём файл 20-apparmor-donotrestrict.conf, который будет содержать настройку, отключающую ограничения AppArmor на создание пространств имен для непривилегированных пользователей.

  2. Примените изменения: После создания файла нужно применить настройки. Это можно сделать командой:

    sudo sysctl --system

    Эта команда загрузит все конфигурации из каталога /etc/sysctl.d/, включая только что созданный вами файл.

  3. Перезагрузите систему: После выполнения вышеуказанных команд, рекомендуется перезагрузить систему, чтобы убедиться, что изменения были применены правильно. Вы можете перезагрузить систему с помощью команды:

    sudo reboot
  4. Проверка настройки: После перезагрузки вы можете проверить, применились ли изменения, выполнив:

    sysctl kernel.apparmor_restrict_unprivileged_userns

    Если всё сделано правильно, вы должны увидеть значение 0.

О безопасности

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

Заключение

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

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

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