Я налаштовую своє середовище, щоб створити основний дамп всього, що виходить з ладу, однак, коли я запускаю програму з SUID, встановленою для іншого користувача, ніж виконавець, вона не створює дамп ядра. Будь-яка ідея, чому це може бути? Я не міг його знайти в Інтернеті, я думаю, що це якась функція безпеки, але хотілося б, щоб вона була відключена ...
Проблема:
$ 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)
Редагувати: щоб зробити його максимально безпечним, тепер у мене є такий сценарій для налаштування середовища:
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
Тепер залишається лише додати ACL до / var / coredumps, щоб користувачі могли додавати лише файли і не змінювати і не читати їх більше ніколи. Єдиний менший розмір - це те, що у мене все ще будуть проблеми з chroot'ed додатками, які потребують bind mount
щось подібне.