2016-08-30 4 views
0

Я не могу найти способ настроить свое событие abrt для копирования coredump в пользовательское местоположение. Причина, по которой я хочу сделать это, - это запретить abrt обрезать мои ядра, если каталог сбоев превышает MaxCrashReportsSize. С предварительным условием, что я не контролирую, как настроен abrt, я хотел бы экспортировать coredump в каталог поддержки сразу же после его создания.abrt - использовать событие для копирования/перемещения coredump в пользовательское местоположение

EVENT=post-create pkg_name=raptorio analyzer=CCpp 
    test -f coredump && { mkdir -p /opt/raptorio/cores; cp -f coredump /opt/raptorio/cores/$(basename `cat executable`).core; } 

Это событие сохранит один coredump для каждого двоичного файла C/C++ из моего пакета RPM raptorio. Когда моя программа разбивает ABRT печатает следующие ошибки в системном журнале:

Aug 30 08:28:41 abrtd: mkdir: cannot create directory `/opt/raptorio/cores': Permission denied 
Aug 30 08:28:41 abrtd: cp: cannot create regular file `/opt/raptorio/cores/raptord.core': No such file or directory 
Aug 30 08:28:41 abrtd: 'post-create' on '/var/spool/abrt/ccpp-2016-08-30-08:28:10-31213' exited with 1 

Я вижу, что событие ABRT работает как root:root но он заключен в тюрьму как-то, возможно, в связи с SELinux? Я использую abrt 2.0.8 на centos 6.

ответ

0

/opt - это не подходящее место для хранения временных файлов. Конечно, ядра должны идти в/var/raptorio/core. См. Filesystem Hierarchy Standard

Предполагая, что ваша программа запускается как пользователь «nobody», убедитесь, что «никто» не имеет разрешений на запись в этом каталоге, и вы должны быть настроены.

+0

Оцените ссылку относительно места аварии. Программа запускается как root (намеренно), но событие все еще не создает каталог. Когда я регистрирую пользователя и группу в случае, я получаю «root: root». У кого есть доступ на запись к/opt. – Critikullx

+0

@Critikullx - Потому что/opt, как ожидается, будет содержать программы и библиотеки, не было бы неожиданностью, что что-то в SELinux говорит, что нет-нет писать двоичный файл там, так как это будет первым шагом, чтобы обмануть кого-то в запуске недружественный исполняемый файл. Даже если вы можете победить это ограничение, это может привести к открытию дыры в безопасности. – CAB

Смежные вопросы