Saya mengatur lingkungan saya untuk membuat dump inti dari segala sesuatu yang macet, namun ketika saya menjalankan program dengan SUID yang ditetapkan pada pengguna yang berbeda dari pengguna yang menjalankannya tidak membuat dump inti. Adakah alasan mengapa hal ini terjadi? Saya tidak dapat menemukannya di mana pun di web, saya pikir ini semacam fitur keamanan tetapi saya ingin menonaktifkannya ...
Masalah:
$ cd /tmp
$ cat /etc/security/limits.conf | grep core
* - core unlimited
root - core unlimited
$ ls -l ohai
-rwsr-sr-x 1 root root 578988 2011-06-23 23:29 ohai
$ ./ohai
...
Floating point exception
$ sudo -i
# ./ohai
...
Floating point exception (core dumped)
# chmod -s ohai
# exit
$ ./ohai
...
Floating point exception (core dumped)
Sunting: Untuk membuatnya bekerja seaman mungkin, sekarang saya memiliki skrip berikut untuk mengatur lingkungan:
mkdir -p /var/coredumps/
chown root:adm /var/coredumps/
chmod 772 /var/coredumps/
echo "kernel.core_pattern = /var/coredumps/core.%u.%e.%p" >> /etc/sysctrl.conf
echo "fs.suid_dumpable = 2" >> /etc/sysctl.conf
echo -e "*\t-\tcore\tunlimited" >> /etc/security/limits.conf
echo -e "root\t-\tcore\tunlimited" >> /etc/security/limits.conf
Sekarang yang perlu dilakukan adalah menambahkan ACL ke / var / coredumps sehingga pengguna hanya dapat menambahkan file dan tidak memodifikasi atau membacanya lagi. Satu-satunya perampingan adalah bahwa saya masih akan memiliki masalah dengan aplikasi chroot yang membutuhkan bind mount
atau sesuatu seperti itu.