Оглавление |
---|
Информация |
---|
Для выполнения всех инструкций, приведенных в статье, необходимы пакеты из расширенного репозитория для Astra Linux Special Edition x.8 или репозитория со средствами разработки. |
Информация | ||
---|---|---|
| ||
|
Включение сохранения дампов приложений
В Astra Linux по умолчанию дампы памяти процессов запрещены. Проверить это можно следующей командой::
Command | ||
---|---|---|
| ||
0 fs.suid_dumpable = 0 core |
В выводе команды:
0 — максимальный размер файла дампа. Значение ноль указывает на то, что сохранение дампов запрещено;
fs.suid_dumpable = 0 — отдельно запрещено сохранение дампов программ, файлы которых имеют бит suid;
core — дампы должны сохранятьcя в файле с именем core в текущем каталоге ;
Для проверки сохранения дампов можно использовать выполнить команды:
Command |
---|
sleep 20 & |
В результате выполнения указанных команд будет выдано сообщение вида:
Блок кода |
---|
[1]+ Ошибка сегментирования |
Для включения возможности снимать дампы, потребуется внести изменения в файле /etc/security/limits.conf строке 46:
...
title | /etc/security/limits.conf |
---|
...
sleep 20 |
однако дамп (файл core) при этом создан не будет.
Для того, чтобы разрешить сохранение дампов:- Временно разрешить сохранение дампов (действует до перезагрузки):
Command ulimit -S -c unlimited Для теста можно использовать приведенные ранее команды. Сообщение теперь будет выглядеть так:
Блок кода [1]+ Ошибка
...
сегментирования
...
(образ памяти сброшен на диск)
...
sleep 20
При этом в текущем каталоге будет создан файл core с дампом.
- Для того, чтобы разрешить дампы постоянно (вступает в действие после перезагрузки) добавить в файл /etc/security/limits.conf строку
...
- :
Блок кода title /etc/security/limits.conf * soft core unlimited
...
Например:
Command echo '* soft core unlimited' | sudo tee -a /etc/security/limits.conf И перезагрузить машину.
Проверку после перезагрузки можно выполнить указанным выше способом.
При необходимости можно изменить иные параметры сохранения дампов:
Временно, до перезагрузки:
- Место размещение дампов. Например, в файле astra-dump в домашнем каталоге пользователя:
Command echo "/home/$USER/astra-dump" | sudo tee /proc/sys/kernel/core_pattern - Разрешить дампы программ suid (действует до перезагрузки, в целях тестирования):
Значения параметра suid_dumpable: https://sysctl-explorer.net/fs/suid_dumpable/.Command sudo sysctl -w fs.suid_dumpable=1
- Место размещение дампов. Например, в файле astra-dump в домашнем каталоге пользователя:
- Постоянно пазрешить дампы программ suid после перезагрузки:
Command echo "fs.suid_dumpable=1" | sudo tee /etc/sysctl.d/fs_suid_dumpable.conf
sudo sysctl -p --system
Дампы служб systemctl
Информация |
---|
Применимо для Astra Linux Special Edition очередное обновление 1.7 с подключенным базовым репозиторием и для Astra Linux Special Edition очередное обновление 1.8 с подключенным расширенным репозиторием. |
Установить пакет systemd-coredump:
Command sudo apt install systemd-coredump Тест, например:
Command sudo kill -s SIGABRT `pgrep sshd` Command Title sudo coredumpctl 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.
При наличии в системе установленного отладчика для отладки можно использовать команды вида:
Command |
---|
sudo coredumpctl gdb |
или с указанием имени отлаживаемой программы:
Command |
---|
sudo coredumpctl gdb /usr/sbin/avahi-daemon |
При выполнении команды будет выбран последний по времени (последний подходящий по указанному имени) дамп и запущен отладчик.
Создать каталог для дампов:
Command |
---|
|
Разрешить полный доступ:
Command |
---|
|
Указать формат и место сохранения дампов:
...