2016-08-30 2 views
0

코어 덤프를 사용자 정의 위치로 복사하도록 내 abrt 이벤트를 구성하는 방법을 찾을 수 없습니다. 이 작업을 수행하려는 이유는 크래시 디렉토리가 MaxCrashReportsSize을 초과하면 abrt가 내 코어 덤프를 제거하지 못하게하기 위해서입니다. 전제 조건으로 abrt 구성 방법에 대한 제어권이없는 상태에서 코어 덤프가 작성되는 즉시 지원 디렉토리로 내보내려고합니다.abrt - 코어 덤프를 사용자 정의 위치로 복사/이동하는 이벤트 사용

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; } 

이 이벤트는 raptorio RPM 패키지에서 각 C/C++ 바이너리마다 하나의 코어 ump를 저장합니다. 내 프로그램은 ABRT 충돌 시스템 로그에 다음과 같은 오류를 인쇄 할 때 :

나는 ABRT 이벤트가 root:root로 실행하지만 그것은 아마도 때문에 SELinux에에, 어떻게 든 투옥되는 것을 볼 수
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 

? 나는 centos 6에서 abrt 2.0.8을 사용하고있다.

답변

0

/opt는 임시 파일을 보관할 적절한 장소가 아니다. 코어는/var/raptorio/core에 있어야합니다. Filesystem Hierarchy Standard

사용자가 'nobody'로 실행된다고 가정 할 때 'nobody'는 해당 디렉토리에 대한 쓰기 권한을 가지고 있어야하며 모두 설정해야합니다.

+0

충돌 위치와 관련된 링크를 감사드립니다. 프로그램이 루트로 (의도적으로) 실행되지만 이벤트가 여전히 디렉토리를 만들지 못합니다. 이벤트에서 사용자와 그룹을 로그 할 때'root : root'를 얻습니다./opt에 대한 쓰기 권한이 있습니다. – Critikullx

+0

@Critikullx -/opt에는 프로그램과 라이브러리가 포함될 것으로 예상되므로 SELinux의 무언가가 바이너리 파일을 쓰는 것이 아니라고 말하는 것은 예상치 못한 일이 아닙니다. 누군가를 속이기위한 첫 걸음이 될 것입니다. 비우호적 인 실행 파일. 그 한계를 극복 할 수 있다고해도, 보안 구멍을 열 위험이 있습니다. – CAB