Sie können nur die anstößige Zeile aus bash
entfernen 's Verlauf, anstatt den gesamten Verlauf zu löschen. Entfernen Sie einfach die Zeile mit der -d
Flag, dann speichern (schreiben) Sie den neuen Verlauf mit -w
Flagge:
$ history
351 ssh [email protected]
352 my_password
$ history -d 352
$ history -w
Dazu gibt es zwei Teile:
bash
speichert den Verlauf in einer Datei~/.bash_history
die standardmäßig am Ende der Sitzung geschrieben wird- der
history
das bleibt in erinnerung
Sicherheitshalber müssen Sie es aus der Sitzung löschen:
history -c
und kürzen Sie die Verlaufsdatei nach Bedarf:
> ~/.bash_history
Wenn Ihre Sitzung, in der Sie das Passwort eingegeben haben, noch offen ist, gibt es eine andere Möglichkeit, Ihre Spur zu verwischen ist die HISTFILE
zu setzen Variable auf das Nullgerät, damit der Verlauf nicht auf ~/.bash_history
geschrieben wird wenn die Sitzung beendet wird:
export HISTFILE=/dev/null
Da Bash (zumindest alle historischen und aktuellen Versionen, die mir bekannt sind) den Verlauf nicht automatisch speichert, bis Sie es beenden, ist eine allgemein anwendbare Strategie, wenn Sie einen Befehl eingegeben haben, von dem Sie sicherstellen möchten, dass er nie gespeichert wird, sofort Folgendes einzugeben:
kill -9 $$
Dies beendet die Shell mit SIGKILL
, die nicht abgefangen werden können, sodass die Shell beim Beenden keine Möglichkeit hat, etwas zu speichern.
Die meisten anderen Ansätze beinhalten ein nachträgliches Scrubbing (d. h. nachdem die Daten bereits auf der Festplatte angekommen sind), was viel mehr Fehlermöglichkeiten birgt (eine Kopie fehlt), insbesondere wenn das System möglicherweise btrfs oder ähnliches verwendet.