Benutzerdetails protokollieren, die einen Dienst neu gestartet haben

Benutzerdetails protokollieren, die einen Dienst neu gestartet haben

Dies hängt mit einer Frage zusammen, die ich vor einiger Zeit gestellt habe.

Ich möchte die Details darüber protokollieren, wer einen bestimmten Dienst unter Linux neu gestartet hat.

Zum Beispiel:

Wenn ein Benutzer X Apache neu startet, werden Benutzername, Uhrzeit, Dienst (d. h. Apache) und Status (Erfolg/Fehlschlag) protokolliert.

Ich kann dazu ein kleines Skript schreiben und es manuell zum Startskript des Dienstes hinzufügen.

Dies wäre jedoch nicht möglich, da ich Tausende von Servern und Dutzende von Diensten habe.

Gibt es eine andere Möglichkeit, dies zu tun, ohne das Dienststartskript zu manipulieren?

Antwort1

Ich würde vorschlagen, das System zu sperren. Fordern Sie den Benutzer auf, zu verwenden sudo, lassen Sie nur die Ausführung bestimmter Befehle mit zu sudound verhindern Sie die Ausführung beliebiger Befehle, indem Sie Dinge wie sudo suund verbieten sudo bash.

sudoprotokolliert alle darüber ausgeführten Befehle, einschließlich natürlich auch Dienstneustarts. Auf meinem Rechner erfolgt die Protokollierung in /var/log/secure, das nur von gelesen werden kann root.

Das bringt Ihnen allerdings nicht das, was Sie sich erhofft haben - Erfolg oder Misserfolg. Sie könnten diese zusätzliche Protokollierung jedoch problemlos mit einem Wrapper-Skript implementieren, dessen Verwendung Sie vom Benutzer verlangen könnten, anstatt den Dienst direkt zu starten - achten Sie nur darauf, dass das Wrapper-Skript sicher ist!

Der Benutzer würde also Folgendes eingeben:

sudo wrapper_script start service

oder etwas ähnliches.

Beachten Sie, dass sudo-Protokollebeideder ursprüngliche Benutzer und der Benutzer, als der sie sudo verwenden (standardmäßig root).

verwandte Informationen