Heute habe ich gemerkt, dass mein Bash-Verlauf vollständig gelöscht ist. Ich habe history -c
die .bash_history
Datei weder ausgeführt noch gelöscht . Abgesehen vom Löschen der .bash_history
Datei und history -c
wie kann der Bash-Verlauf gelöscht werden?
bash
command-history
nik.1
quelle
quelle
>.bash_history
. Vielleicht war jemand in Ihrem Konto und hat versucht, seine Spuren zu verbergen.last
Suchen Sie nach ungewöhnlichen Anmeldezeiten mit , bis/var/log/auth.log
(abhängig von Ihrem System).Antworten:
Wenn mehrere Bash-Instanzen gleichzeitig geschlossen werden, ist eine Race-Bedingung bekannt, die zum Löschen des Verlaufs führen kann. Dies liegt daran, dass beim Schreiben der Bash-Verlaufsdatei keine Sperre verwendet wird.
Chet Ramey (der aktuelle Bash-Betreuer) gab eine gute Zusammenfassung der Bedingungen für dieses Problem:
Dieser Mailinglisten-Thread von bug-bash enthält eine anständige Diskussion der Probleme, möglichen Lösungen und Bedenken, die damit verbunden sind.
Es gibt auch einige andere Möglichkeiten:
HISTSIZE
oderHISTFILESIZE
auf 0 gesetzthistory-size
auf 0 gesetzt> "$HISTFILE"
oder ähnlich)In letzterem Fall möchten Sie möglicherweise überprüfen, ob jemand nicht auf Ihr Konto zugegriffen hat und versucht, seine Titel grob auszublenden. Werfen Sie einen Blick auf
last
,/var/log/auth
(oder/var/log/secure
auf CentOS / RHEL), und wenn Sie es haben, jeder Prozess Buchhaltung und / oder Revisions Software installiert haben.quelle
So habe ich versehentlich meinen Bash-Verlauf gelöscht:
Ich habe mein eigenes alternatives Terminal-Readline-Skript nach den ersten Prinzipien erstellt: https://tiswww.cwru.edu/php/chet/readline/rluserman.html
und dann in einem Terminal testen. In dieser GNU Readline sind eine Verlaufsgröße und Anweisungen zur Aufbewahrung des Verlaufs integriert, sodass die Standardgröße verwendet werden kann und somit der gesamte Verlauf weggeblasen wird.
Wiederherstellung der Historie, wenn im Speicher belassen:
Wenn Sie es vor einem Neustart abfangen oder wenn ein Terminal vor dem Löschen offen gelassen wurde, können Sie Ihren Verlauf möglicherweise im Speicher finden. Laufen Sie
history | cut -c 8- > histback_user1.txt
auf allen Terminals, die noch offen sind, und für jeden Benutzer. Wenn das eine Datei mit Ihrer erweiterten Geschichte erzeugt, dann können Sie ersetzen~/.bash_history
mithistback_user1.txt
. Überprüfen Sie auch den Verlauf aller kürzlich am System angemeldeten Benutzer sowie den Verlauf von root. Es ist unter vielen Umständen einfach, den Bash-Verlauf versehentlich zu löschen. Wenn Sie also sicher sein möchten, dass kein Verlauf verloren geht, benötigen Sie ein tägliches Sicherungsskript.quelle