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; }
該事件將爲我的raptorio RPM軟件包中的每個C/C++二進制文件保存一個coredump。當我的程序崩潰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的?我在centos 6上使用了abrt 2.0.8。
欣賞關於碰撞位置的鏈接。該程序作爲根(有意)運行,但該事件仍然無法創建該目錄。當我登錄用戶和組時,我得到'root:root'。對/ opt有寫權限。 – Critikullx
@Critikullx - 由於/ opt期望包含程序和庫,因此SELinux中的某些內容意味着在其中寫入二進制文件是一個不允許的事情,因爲這將是欺騙某人運行的第一步一個不友好的可執行文件。即使你可以擊敗這個限制,它也有可能會打開一個安全漏洞。 – CAB