Ich richte meine Umgebung so ein, dass ein Core-Dump von allem erstellt wird, was abstürzt. Wenn ich jedoch ein Programm mit SUID auf einem anderen Benutzer als dem ausführenden Benutzer ausführe, wird kein Core-Dump erstellt. Irgendeine Idee, warum das so sein könnte? Ich konnte es nirgendwo im Web finden, ich denke, es ist eine Art Sicherheitsfunktion, aber ich möchte, dass es deaktiviert wird ...
Problem:
$ 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)
Bearbeiten: Damit es so sicher wie möglich funktioniert, habe ich jetzt das folgende Skript zum Einrichten der Umgebung:
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
Jetzt müssen Sie nur noch ACL zu / var / coredumps hinzufügen, damit Benutzer nur Dateien hinzufügen und diese nie wieder ändern oder lesen können. Der einzige Nachteil ist, dass ich immer noch ein Problem mit chroot-Anwendungen habe, die so bind mount
etwas benötigen .