Heim >Betrieb und Instandhaltung >Betrieb und Wartung von Linux >So verwenden Sie die historische Befehlsaufzeichnungsfunktion der Linux-Shell
Unter Linux können Sie den Befehl „history“ verwenden, um alle historischen Vorgänge des Benutzers anzuzeigen. Gleichzeitig werden die Operationsdatensätze des Shell-Befehls standardmäßig in der Datei .bash_history im Benutzerverzeichnis gespeichert. Über diese Datei können Sie den Ausführungsverlauf von Shell-Befehlen abfragen, was dem Betriebs- und Wartungspersonal bei der Durchführung von Systemprüfungen und Fehlerbehebungen hilft. Gleichzeitig können Sie nach einem Hackerangriff auf den Server auch den Verlauf der Befehlsoperationen von Hackern abfragen sich am Server anmelden. Nach dem Eindringen von Hackern löschen sie jedoch die Datei .bash_history, um Spuren zu löschen. Dies erfordert eine angemessene Sicherung dieser Datei.
Der Standard-Verlaufsbefehl kann nur die historischen Vorgangsaufzeichnungen des Benutzers anzeigen, aber nicht den Zeitpunkt unterscheiden, zu dem jeder Benutzer den Befehl ausgeführt hat. Dies ist für die Fehlerbehebung recht unpraktisch. Die Lösung besteht darin, der Datei /etc/bashrc die folgenden vier Zeilen hinzuzufügen, damit der Befehl „history“ die Ausführungszeit aller Shell-Befehle automatisch aufzeichnen kann:
Code kopieren Der Code lautet wie folgt folgt:
#🎜 🎜#histfilesize=4000histsize=4000
histtimeformat='%f %t'
export histtimeformat
Erweiterte Tipps
Obwohl das oben genannte Gerät die Zeit aufzeichnen kann, kann es nicht für Prüfzwecke verwendet werden und kann leicht manipuliert werden oder verloren gehen Hacker. Die folgende Methode zeichnet detailliert die Benutzer auf, die sich am System angemeldet haben, IP-Adressen, Shell-Befehle und detaillierte Betriebszeiten. Und speichern Sie diese Informationen in Form von Dateien an einem sicheren Ort für Systemprüfungen und Fehlerbehebung. Fügen Sie den folgenden Code in die Datei /etc/profile ein, um die oben genannten Funktionen zu erreichen.user_ip=`who -u am i 2>/dev/null |awk ' {print $nf}' |sed -e 's/[()]//g'`
logname=`wer -u bin ich |awk '{print $1}'`
histdir=/ user/share/.history
if [ -z $user_ip]
then
user_ip=`hostname`
fi
then
mkdir -p $histdir
chmod 777 $histdir
fi
then
mkdir -p $histdir/${logname}
chmod 300 $histdir/${logname}
fi
dt=`Datum +"%y%m%d_%h%m%s"`
export histfile="$histdir/${logname}/${user_ip} .history. $dt"export histtimeformat="[%y.%m.%d %h:%m:%s]"
chmod 600 $histdir/${logname}/*.history * 2> /dev/null
Das obige ist der detaillierte Inhalt vonSo verwenden Sie die historische Befehlsaufzeichnungsfunktion der Linux-Shell. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!