2011-07-11 21:44:59 +0000 2011-07-11 21:44:59 +0000
30
30

Wie kann man unter Linux den Befehlsverlauf eines anderen Benutzers anzeigen?

Wie kann ich die Befehlshistorie eines anderen Benutzers einsehen?

Ich bin ein Admin auf meinem Rechner. Ich kann den normalen Verlauf sehen, indem ich /home/user_name/.bash_history ansehe, aber ich kann die Befehle dieses user_name nicht sehen, wenn sie sudo ausgeführt wurden.

Gibt es eine Möglichkeit, alle von einem Benutzer ausgeführten Befehle zu sehen?

Antworten (6)

23
23
23
2011-07-11 21:51:46 +0000

Auf Debian-basierten Betriebssystemen sollten Sie mittail /var/log/auth.log | grep usernameden sudo-Verlauf eines Benutzers erhalten. Ich glaube nicht, dass es eine Möglichkeit gibt, eine einheitliche Befehlshistorie der normalen + sudo-Befehle eines Benutzers zu erhalten.

Auf RHEL-basierten Betriebssystemen müssten Sie /var/log/secure anstelle von /var/log/auth.log prüfen.

5
5
5
2015-11-04 21:51:20 +0000

Habe gerade das Folgende getestet und es hat wunderbar funktioniert.

sudo vim /home/USER_YOU_WANT_TO_VIEW/.bash_history
2
2
2
2011-07-11 21:52:18 +0000

Wenn der Benutzer einen Befehl wie in sudo somecommand erteilt hat, erscheint der Befehl im Systemprotokoll.

Wenn der Benutzer eine Shell mit z. B. sudo -s, sudo su, sudo sh usw. erzeugt hat, dann erscheint der Befehl möglicherweise in der Historie des Root-Benutzers, d. h. in /root/.bash_history oder ähnlich.

1
1
1
2019-01-16 07:16:45 +0000

Verwenden Sie den folgenden Befehl

sysdig -c spy_users

wenn sysdig nicht installiert ist, installieren Sie hier

1
1
1
2016-01-03 19:43:19 +0000

# zless /var/log/auth* ist hier Ihr Freund. Es öffnet sogar die gzipped-Dateien. Zwischen diesen können Sie mit :n vorwärts oder :p rückwärts springen.

Alternativ können Sie zum Beispiel # journalctl -f -l SYSLOG_FACILITY=10 verwenden. Lesen Sie mehr dazu im Arch Linux wiki

-1
-1
-1
2018-09-30 16:38:21 +0000

Die Logik gilt für viele andere Ziele.
Und wie liest man .sh_history jedes Benutzers aus dem Dateisystem /home/? Was, wenn es Tausende von ihnen gibt?

#!/bin/ksh
last |head -10|awk '{print $1}'|
 while IFS= read -r line
 do
su - "$line" -c 'tail .sh_history'
 done

Hier ist das Skript.