Anzeigen des Befehlsverlaufs eines anderen Benutzers unter Linux

30

Wie kann ich den Befehlsverlauf eines anderen Benutzers anzeigen?

Ich bin ein Administrator auf meinem Computer. Ich kann den normalen Verlauf anzeigen, /home/user_name/.bash_historyaber ich kann keine Befehle dazu sehen, user_nameals sie ausgeführt wurden sudo.

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

Sean Nguyen
quelle
1
Stehlen Sie sein Passwort :) oder durch Social Engineering. Wenn Sie kein Root-Benutzer sind und Ihr Konto so eingerichtet ist, dass Sie das Zuhause / die Dateien anderer Benutzer nicht lesen können, sind Sie ziemlich eingeschränkt.
Ringträger
8
"Ich bin ein Administrator auf meinem Computer."

Antworten:

23

Auf Debian-basierten Betriebssystemen tail /var/log/auth.log | grep username sollte dies den Verlauf eines Benutzers sudoanzeigen. Ich glaube nicht, dass es eine Möglichkeit gibt, einen einheitlichen Befehlsverlauf der normalen + sudo-Befehle eines Benutzers zu erhalten.

Auf RHEL-basierten Betriebssystemen müssten Sie /var/log/securestattdessen überprüfen /var/log/auth.log.

Kerin
quelle
Gibt es eine Ahnung, was dies für ein Centos-System bedeuten würde? Meine Centos 7-Maschinen haben keine/var/log/auth.log
Mitch
3
Versuchen Sie es /var/log/securestattdessen.
Kerin
Funktioniert perfekt! Gib einfach eine Bearbeitungsanfrage für deine Antwort ein
Mitch
4

Habe gerade folgendes getestet und es hat wie ein Zauber funktioniert.

sudo vim /home/USER_YOU_WANT_TO_VIEW/.bash_history
Tyson
quelle
1
S / er ist sich dieses Befehls bereits bewusst. Aus der ursprünglichen Frage: "Ich kann den normalen Verlauf durch Anzeigen von /home/benutzername/.bash_history sehen, aber ich kann keine Befehle dieses" benutzernamens "sehen, wenn sie sudo ausführten."
Michael Thompson
2

Wenn der Benutzer einen Befehl wie in ausgegeben hat sudo somecommand, wird der Befehl im Systemprotokoll angezeigt.

Wenn der Benutzer eine Schale mit beispielsweise hervorgebracht, sudo -s, sudo su, sudo sh, usw., dann ist der Befehl kann in der Geschichte der Root - Benutzer erscheint, dass, in ist /root/.bash_historyoder ähnliches.

bdonlan
quelle
1
Wo ist das Systemprotokoll?
Garrett
1

# zless /var/log/auth*ist dein Freund hier. Es öffnet sogar die gezippten Dateien. Sie können zwischen diesen mit :nvorwärts oder :prückwärts springen .

Alternativ können Sie # journalctl -f -l SYSLOG_FACILITY=10zum Beispiel verwenden. Weitere Informationen hierzu finden Sie im Arch Linux-Wiki

AdamKalisz
quelle
1

Verwenden Sie den folgenden Befehl

sysdig -c spy_users

Wenn sysdig nicht installiert ist , installieren Sie es hier

sachin_ur
quelle
0

Vielleicht hat dieser Link einen Wert für Sie: http://www.sudo.ws/pipermail/sudo-users/2000-March/000052.html

Aber Sie sollten bedenken, dass es nur darum geht, einen Befehl mit einem Leerzeichen etcpp zu starten, um in bash_history keine Spur zu hinterlassen. Die Historie ist ein Helfer, kein Logging-Tool.

Viele Grüße aus Deutschland, Daniel Leschkowski


quelle
-1

Die Logik gilt für viele andere Ziele.
Und wie liest man die .sh_history jedes Benutzers aus / home / filesystem? Was ist, 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 Drehbuch.

Igor MV
quelle