
Ich möchte wissen, welcher Benutzer welchen Befehl auf dem Terminal ausgeführt hat und wann. Das heißt, wenn ein Benutzer „rmdir abc“ ausführt und ein bestimmtes Verzeichnis entfernt, sollte ich wissen, welchen Befehl er zu welchem Zeitpunkt ausgeführt hat. Und ich möchte dies nicht für eine einzelne Sitzung, sondern diese Daten sollten mir zur Verfügung stehen, so wie wir Protokolle pflegen, sodass ich sie zu jedem beliebigen Zeitpunkt analysieren kann.
Ich habe den history
Befehl auch ausprobiert und auch die Zeit hinzugefügt, aber er zeigt keine „Benutzer“ des Befehls an und außerdem ist er sitzungsbasiert, sodass seine Daten nicht an die ~/.bash_history
Datei angehängt werden, es sei denn, die Sitzung wird beendet. Außerdem ~/.bash_history
werden weder Zeit noch Benutzer angezeigt, also ist er nicht nützlich. Kann mir bitte jemand helfen? Ich möchte nur sehen, welcher Benutzer welchen Befehl ab dem Moment ausgeführt hat, in dem das System gestartet wurde, und zu welcher Zeit.
Antwort1
Sie können Befehle überprüfen, die von Benutzern ausgeführt wurden, indem Siesudo vim /home/USER_YOU_WANT_TO_VIEW/.bash_history
Weitere Informationen finden Sie auch in den AUTH-Protokollentail /var/log/auth.log | grep username
Versuchen Sie diese ähnliche Frage:Wie kann ich Zeitstempel im Bash-Verlauf anzeigen?
Antwort2
Ich vermute, es befindet sich in der Bash-Verlaufsdatei aller Benutzer. Sie müssen nur eine Liste der Bash-Verlaufsdateien abrufen und diese caten.
cd /home
find |grep .bash_history
Ausgänge:
./gediz/.bash_history
als Katze es
cat ./gediz/.bash_history
Sie können es in einer For-Schleife tun
a=find ...
for i in $a
do
echo $a
cat $i
done
Sie können einen Dienst erstellen oder die Datei rc.local für den Ubuntu-Start mit einer While-Schleife bearbeiten, die in jeder Schleife die .bash_history aller Benutzer an einem sicheren Ort sichert, sodass Sie auch dann überprüfen können, was getan wurde, wenn Benutzer ihre eigenen Dateien löschen.