Apport на Ubuntu 18.04 LTS выдает ошибки разрешения для ProcEnvironment и ProcMaps.

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

Мне передали несколько дампов сбоев от Apport, работающего на Ubuntu 18.04 LTS. У меня нет доступа к соответствующему серверу, но я имею доступ к тестовой версии, которая, как мне сказали, должна быть настроена так же.

Проблема в том, что дампы сбоев содержат следующие строки:

ТипПроблемы: Сбой
Архитектура: amd64
Дата: Вс 1 декабря 2024 14:56:00
РелизДистрибутива: Ubuntu 18.04
ПутьКИсполняемомуФайлу: /usr/bin/uwsgi-core
ВремяИсполнения: 1629467367
КоманднаяСтрокаПроцесса: Некоторые\ uWSGI\ worker\ 1
ОкружениеПроцесса: Ошибка: [Errno 13] Доступ запрещен: 'environ'
КартыПроцесса: Ошибка: [Errno 13] Доступ запрещен: 'maps'
СтатусПроцесса:
...

Он содержит файл ядра, который я могу распаковать и загрузить в GDB, но проблема в том, что без ProcMaps я не уверен, что даже смогу узнать, какие библиотеки были загружены в какие области памяти.

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

Насколько я могу судить, конфигурация кажется довольно стандартной, сбор данных Apport включен. Я не вижу ничего, связанного с Apport, в системных журналах, указывающего на отказ AVC для /proc//environ или /proc//maps (я вижу их для других вещей, но не для apport)

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

Ошибки разрешений для ProcEnvironment и ProcMaps в Apport на Ubuntu 18.04 LTS

Введение

Ошибка, с которой вы столкнулись при анализе дампов краша в Apport на Ubuntu 18.04 LTS, связана с невозможностью доступа к ресурсам ProcEnviron и ProcMaps. Это, как правило, вызвано проблемами с правами доступа, которые можно решить с помощью надлежащей настройки конфигурации системы и Apport. В данной статье мы подробно рассмотрим возможные причины ошибки и шаги по их устранению.

Причины ошибок

  1. Проблемы с правами доступа: Ошибки [Errno 13] Permission denied указывают на то, что Apport, работающий от имени пользователя, не имеет прав доступа к файлам окружения и картам процесса. Это может произойти из-за недостаточных привилегий пользователя, под которым запускается Apport, или из-за ограничений, наложенных на процесс, в котором произошел сбой.

  2. Контроль доступа на уровне ядра: На системах, использующих SELinux или AppArmor, могут быть активированы политики безопасности, которые блокируют доступ к данным в /proc/[pid]/environ и /proc/[pid]/maps. Так как вы не видите записей AVC в журналах, стоит проверить, как настроены профили AppArmor или SELinux, если они включены.

Рекомендации по устранению ошибок

  1. Проверка прав доступа:

    • Убедитесь, что Apport запущен от пользователя с достаточными правами. В некоторых случаях, если процесс, который вызывает сбой, запускается с ограничениями (например, через systemd), возможно, Apport не может получить к нему доступ. Проверьте, под каким пользователем запускается служба uwsgi.
  2. Настройка безопасности:

    • Если используется AppArmor, проверьте, есть ли активированные профили для uwsgi-core. Вы можете временно переключить профиль профиля в режим "воспроизведения" с помощью команды:
      sudo aa-complain /etc/apparmor.d/usr.sbin.uwsgi
    • После этого попробуйте повторно запустить Apport и собрать дамп. Если ошибка исчезнет, это указывает на то, что проблема связана с ограничениями AppArmor.
  3. Логи системы:

    • Проверьте журналы системы на наличие записей, связанных с доступом к процессам. Можно использовать команды:
      journalctl -xe
      dmesg | grep -i denied
    • Эти журналы могут предоставить дополнительную информацию о том, что пошло не так при попытке доступа к /proc/[pid]/environ и /proc/[pid]/maps.
  4. Обновление системы:

    • Убедитесь, что ваша система обновлена до последней версии. Часто обновления содержат исправления ошибок, которые могут улучшить работу Apport и разрешить проблемы с доступом к системным ресурсам:
      sudo apt update && sudo apt upgrade

Заключение

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

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

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