1. Dalam pembuatan file inti CentOS/RHEL dinonaktifkan secara default. Untuk mengaktifkannya, jalankan perintah di bawah ini:
# ulimit -S -c unlimited > /dev/null 2>&1
kemudian jalankan program di lingkungan shell yang sama.
2. Untuk mengaktifkannya secara permanen, ikuti langkah-langkah di bawah ini:
– Edit /etc/security/limits.conf .
# vi /etc/security/limits.conf * soft core unlimited
‘* ' digunakan untuk mengaktifkan ukuran coredump menjadi tidak terbatas untuk semua pengguna.
– Edit /etc/sysctl.conf untuk menambahkan jalur dump inti dan format file dari file inti. Secara default, file inti akan dibuat di direktori kerja dari proses yang sedang berjalan.
# vi /etc/sysctl.conf kernel.core_pattern = /var/crash/core.%e.%p.%h.%t
Di sini,
/var/crash adalah jalur dan core.%e.%p.%h.%t adalah format file, di mana:
%e – nama file yang dapat dieksekusi.
%p – PID dari proses yang dibuang.
%t – waktu pembuangan (detik sejak 0:00j, 1 Jan 1970).
%h – hostname (sama dengan 'nodename' yang dikembalikan oleh uname (2)).
Pastikan proses memiliki izin yang benar untuk direktori yang dikonfigurasi (mis. /var/carsh/).
– Setel fs.suid_dumpable untuk binari setuid atau yang dilindungi/tercemar.
# vi /etc/sysctl.conf fs.suid_dumpable = 2
Berikut adalah arti dari setiap nilai yang telah ditentukan:
- 0 – (default) :perilaku tradisional. Proses apa pun yang telah mengubah tingkat hak istimewa atau hanya dijalankan tidak akan dibuang.
- 1 – (debug) :semua proses membuang inti bila memungkinkan. Core dump dimiliki oleh pengguna saat ini dan tidak ada keamanan yang diterapkan. Ini ditujukan untuk situasi debugging sistem saja.
- 2 – (suidsafe) :biner apa pun yang biasanya tidak dibuang dibuang hanya dapat dibaca oleh root. Ini memungkinkan pengguna akhir untuk menghapus dump seperti itu tetapi tidak mengaksesnya secara langsung. Untuk alasan keamanan, dump inti dalam mode ini tidak akan menimpa satu sama lain atau file lainnya. Mode ini sesuai ketika administrator mencoba untuk men-debug masalah di lingkungan normal.
– Muat pengaturan menggunakan perintah sysctl di bawah ini setelah memodifikasi /etc/sysctl.conf di bawah ini:
# sysctl -p
Untuk mengumpulkan dump inti dari paket yang tidak ditandatangani, setel OpenGPGCheck =no di /etc/abrt/abrt-action-save-package-data.conf . Untuk mengumpulkan dump inti dari perangkat lunak yang tidak dikemas, setel ProcessUnpackaged =yes di /etc/abrt/abrt-action-save-package-data.conf
– Mulai ulang abrtd daemon – sebagai root – agar pengaturan baru diterapkan.
# service abrtd restart # service abrt-ccpp restart
Di CentOS/RHEL 7:
# systemctl start abrtd.service # systemctl start abrt-ccpp.service
Sekarang, CentOS/RHEL siap untuk menghasilkan file dump inti ketika proses ditinggalkan dengan segfault.
Catatan :Daemon dan fitur yang disediakan oleh Red Hat Automatic Bug Reporting Tool (ABRT) tidak didukung dengan CentOS/RHEL. Paket ABRT dan file terkait, seperti libreport, disertakan dalam distribusi untuk memenuhi dependensi paket, tetapi fitur dalam paket ini tidak didukung.