
Gibt es eine elegante Möglichkeit, jeden Befehl zu protokollieren, der in allen Shells auf einem Computer übermittelt wird? Dies gilt für einen selten genutzten Ubuntu-Server, dessen einziger menschlicher Benutzer ich bin. (Es gibt mehrere Benutzerkonten, die von automatisierten Systemen verwendet werden.)
Ich möchte, dass dies unaufdringlich ist und wenig Aufwand erfordert, daher fände ich es toll, wenn es eine einfache Methode gäbe, die so etwas beinhaltet wie script
.
Antwort1
Seit Anbeginn der Zeit (eigentlich seit der Zeit, als die Leute tatsächlich Geld pro genutztem Computerzyklus zahlen mussten) ist in Unix und seinen Klonen ein System namens Process Accounting ( acct
) integriert. Dadurch wussten die Systemadministratoren genau, was ihre Benutzer taten und konnten ihnen entsprechend Rechnungen stellen.
Diese acct
Funktionen sind in den meisten Unix- und Linux-Systemen bis heute vorhanden.
Diese Seite:http://www.cyberciti.biz/tips/howto-log-user-activity-using-process-accounting.htmlerklärt Ihnen, wie Sie es aktivieren.
Antwort2
Du könntest benutzenSchnüffler.
Es ist sehr einfach zu installieren und zu entfernen (kein Kernelmodul oder Patchen erforderlich). Beachten Sie, dass dies keine richtige Auditing-Lösung ist und leicht umgangen werden kann.
Offenlegung: Ich bin der aktuelle Snoopy-Betreuer.
Antwort3
Hier ist eine sehr schöne und schnelleMöglichkeit, alle Shell-Befehle zu protokollieren:
Schritt 1:
Öffnen Sie /etc/bashrc mit Ihrem bevorzugten Texteditor und hängen Sie am Ende die folgende Zeile an:
export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local6.debug "$(whoami) [$$]: $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//" ) [$RETRN_VAL]"'
Schritt 2:
Richten Sie den Syslogger so ein, dass local6 in einer Protokolldatei aufgezeichnet wird, indem Sie der Datei /etc/syslog.conf die folgende Zeile hinzufügen:
local6.* /var/log/cmdlog.log
Antwort4
Sie könnensudoschals Shell-Wrapper. Es beinhaltet die automatische Protokollierung aller Ihrer Aktivitäten und kann die Protokolldateien wiedergeben.Weitere Informationen finden Sie auf der Website.