Wie kann ich den Benutzerbefehlsverlauf unter Unix überprüfen?

13

Ich weiß, dass der Befehl 'history' mir eine Liste der Befehle gibt, die ich in das Unix-Terminal eingegeben habe.

Wie sehe ich den Befehlsverlauf für alle Benutzer, die derzeit am System angemeldet sind?

Gaff
quelle
Nicht programmierbezogen. Ich schlage vor, Sie fragen auf superuser.com .
Es gibt kein Standard-Tool, um die Informationen zu erhalten, daher denke ich, dass es sich um Programmierprobleme handelt (zumindest im Sinne von "Scripting").
IanH

Antworten:

11

Sie erhalten eine Liste der aktuell angemeldeten Benutzer /var/run/utmp(siehe man 5 utmp). Der Verlauf wird in ~ / .history oder für Bash-Benutzer in ~ / .bash_history gespeichert. Andere Shells verwenden möglicherweise andere Verlaufsdateien, sodass es nicht so einfach ist, wirklich alle Informationen abzurufen.

Wenn ein Benutzer mehrmals angemeldet ist, ist die Datei .bash_history nicht immer zuverlässig.

Um die utmpDatei zu lesen, wird ein "Frontend" aufgerufen who, sodass Sie auch ein Shell-Skript schreiben können, um die aktuell angemeldeten Benutzer zu durchlaufen.

IanH
quelle
2
Der aktuelle Verlauf wird gespeichert. Die Verlaufsdatei zeigt nur an, was mit history -aoder ähnlich geschrieben wurde oder wann ein Benutzer die Shell verlässt.
Bis auf weiteres angehalten.
2
Beachten Sie, dass die in dieser Antwort angegebenen Dateinamen lediglich die Standardeinstellungen sind. Jeder Benutzer hätte seinen eigenen Standort festlegen können (siehe Joys Antwort). Wenn ein Benutzer unterschiedliche Shells verwendet, kann er seine Historien möglicherweise an verschiedenen, nicht standardmäßigen Speicherorten speichern (z. B. ~ / mybashhist, ~ / histories / ksh oder ähnliches). Beachten Sie auch, dass das Durchsuchen solcher Benutzerdaten rechtliche Auswirkungen haben kann.
DevSolar
3
echo $HISTFILE

Zeigen Sie dann diese Datei an.

Freude
quelle
1
Dies funktioniert nur, wenn Sie zuvor die Umgebung dieses Benutzers bezogen haben (da er möglicherweise HISTFILEetwas anderes festgelegt hat).
DevSolar