| Для выполнения всех инструкций, приведенных в статье, необходимы пакеты из расширенного репозитория для Astra Linux Special Edition x.8 или репозитория со средствами разработки. |
|
Включение сохранения дампов приложений
В Astra Linux по умолчанию дампы памяти процессов запрещены. Проверить это можно следующей командой::
| 0 fs.suid_dumpable = 0 core |
В выводе команды:
0 — максимальный размер файла дампа. Значение ноль указывает на то, что сохранение дампов запрещено;
fs.suid_dumpable = 0 — отдельно запрещено сохранение дампов программ, файлы которых имеют бит suid;
core — дампы должны сохранятьcя в файле с именем core в текущем каталоге ;
Для проверки сохранения дампов можно использовать выполнить команды:
sleep 20 & |
В результате выполнения указанных команд будет выдано сообщение вида:
[1]+ Ошибка сегментирования sleep 20 |
однако дамп (файл core) при этом создан не будет.
Для того, чтобы разрешить сохранение дампов:| ulimit -S -c unlimited |
Для теста можно использовать приведенные ранее команды. Сообщение теперь будет выглядеть так:
[1]+ Ошибка сегментирования (образ памяти сброшен на диск) sleep 20 |
При этом в текущем каталоге будет создан файл core с дампом.
* soft core unlimited |
Например:
| echo '* soft core unlimited' | sudo tee -a /etc/security/limits.conf |
И перезагрузить машину.
Проверку после перезагрузки можно выполнить указанным выше способом.
При необходимости можно изменить иные параметры сохранения дампов:
Временно, до перезагрузки:
| echo "/home/$USER/astra-dump" | sudo tee /proc/sys/kernel/core_pattern |
sudo sysctl -w fs.suid_dumpable=1 |
echo "fs.suid_dumpable=1" | sudo tee /etc/sysctl.d/fs_suid_dumpable.conf |
Дампы служб systemctl
| Применимо для Astra Linux Special Edition очередное обновление 1.7 с подключенным базовым репозиторием и для Astra Linux Special Edition очередное обновление 1.8 с подключенным расширенным репозиторием. |
Установить пакет systemd-coredump:
| sudo apt install systemd-coredump |
Тест, например:
| sudo kill -s SIGABRT `pgrep sshd` |
| TIME PID UID GID SIG COREFILE EXE Thu 2022-12-08 21:52:10 MSK 639 0 0 6 present /usr/sbin/sshd Thu 2022-12-08 21:57:44 MSK 3738 0 0 6 present /usr/sbin/sshd |
Дампы по умолчанию сохраняются в каталоге /var/lib/systemd/coredump.
При наличии в системе установленного отладчика для отладки можно использовать команды вида:
| sudo coredumpctl gdb |
или с указанием имени отлаживаемой программы:
| sudo coredumpctl gdb /usr/sbin/avahi-daemon |
При выполнении команды будет выбран последний по времени (последний подходящий по указанному имени) дамп и запущен отладчик.