Wie kann ich Daemons von init.d beim Booten starten lassen, um sie auf Ubuntu zu sichern? Das habe ich bisher gemacht ...
echo "ulimit -c unlimited" >> /etc/profile
mkdir /corefiles/
chmod 777 /corefiles/
echo "kernel.core_pattern=/corefiles/core.%e.%u.%t" >> /etc/sysctl.conf
echo "fs.suid_dumpable=1" >> /etc/sysctl.conf
echo "kernel.core_uses_pid = 1" >> /etc/sysctl.conf
sysctl -p
Dies funktioniert hervorragend für alles außer für einen Daemon, der beim Booten von init.d gestartet wird. Ich verwende Ubuntu 10.04. Ich suche nach einer Lösung, bei der nicht jede daemons init.d-Datei bearbeitet wird.
EDIT: Auch Daemons, die mit sudo gestartet wurden, entleeren sich nicht.
/var/crash/
. Wenn Sie eine GUI haben, überwacht der Update-Manager dieses Verzeichnis und fragt Sie, ob Sie einen Fehler melden möchten. Ohne eine GUI können Sie jedoch einige Tools verwenden . Wenn Sie nur den Coredump wollen, können Sie die * .crash-Datei mit entpackenapport-unpack
./etc/profile
wird ausgeführt, wenn sich ein Benutzer für eine interaktive Sitzung anmeldet (und dies hängt auch dann von der Anmeldemethode und der Anmeldeshell ab). Es hat keine Auswirkung auf Daemons, die beim Booten gestartet werden.Offensichtlich (ich habe nicht getestet, um zu bestätigen) sind Core-Dumps auf Ubuntu 10.04 deaktiviert. Sie können durch Festlegen einer Größenbeschränkung ungleich Null in aktiviert werden
/etc/security/limits.conf
.limits.conf
Weitere Informationen finden Sie in den Kommentaren in dieser Datei und in der Manpage. Ich denke, Sie möchten eine Zeile wie hinzufügenFür den Fall, dass Sie nicht mehr weiterkommen möchten
Programme mit erhöhten Rechten geben im Allgemeinen keinen Speicherauszug aus (ich kenne die genaue Regel nicht ganz genau). Dies kann sich auf Prozesse auswirken, die direkt über die Erhöhung von Berechtigungen gestartet werden, z
sudo foo
. versuchen Sie essudo sh -c foo
stattdessen (damit der untergeordnete Prozess auf seiner letzten Berechtigungsstufe startet).quelle
/etc/profile
wird nur von Ihrer Login-Shell bezogen, nicht von Initscripts./etc/security/limits.conf
wirkt sich auch nur auf Anmeldesitzungen aus, da diese Grenzwerte von festgelegt werdenpam_limits.so
; von pam_limits manpage:Um das gewünschte Verhalten zu erzielen, müssen Sie das Initscript ändern und Ihren
ulimit -c unlimited
Befehl einfügen . Wie Dom bereits erwähnt hat, können Sie dies auch tun, indem Sie die Bibliothek lsb init-functions bearbeiten.quelle
Ich denke, all diese Optionen werden für die von Ihnen gestarteten Daemons benötigt. Um die Core-Dumps zu erhalten, sollten Sie den Befehl ulimit am Anfang der Startprogramme hinzufügen. Die Launchers sollten / lib / lsb / init-Funktionen verwenden . Sie können es also beliebig ändern. Ich teste hier nichts, also versuche es!
quelle