Ist es möglich, eine Inkognito-Sitzung zu eröffnen bash
?
Zum Beispiel, wenn wir Passwörter in Befehle eingeben müssen und sie nicht bash
zum Verlauf hinzufügen möchten .
bash
shell
command-history
privacy
Sudoer
quelle
quelle
cat | bash
führt eine nicht interaktivebash
Bearbeitung ohne Eingabeaufforderung, Befehlszeilenbearbeitung (nur der interne Editor der Zeilendisziplin) oder Verlauf aus.secrectcommand
wird nicht in der Bash-Geschichte sein.Antworten:
Wenn Sie die
bash
Protokollierung Ihrer Befehle beenden möchten , deaktivieren Sie einfach dieHISTFILE
Variable:Alle weiteren Befehle sollten dann nicht mehr angemeldet sein
.bash_history
.Wenn Sie andererseits tatsächlich Kennwörter als Argumente für Befehle angeben, tun Sie bereits etwas Falsches.
.bash_history
ist nicht für die ganze Welt lesbar und daher nicht die größte Bedrohung in dieser Situation:ps
und/proc
sind das große problem. Alle Benutzer im System können die Befehle, die Sie gerade ausführen, mit allen ihren Argumenten anzeigen . Das Übergeben von Kennwörtern als Befehlszeilenargumente ist daher von Natur aus unsicher . Verwenden Sie Umgebungsvariablen oder Konfigurationsdateien (die Sie mit 600 geändert haben), um Kennwörter sicher bereitzustellen.quelle
unset HISTFILE
hat einen ähnlichen Effekt. Ich habe eine Funktion dafür:n() { HISTFILE=; PS1="~${PS1#\~}"; }
. Auf diese Weise kann ich klar erkennen, ob ich mich im "Inkognito-Modus" befinde oder nicht.Wenn diese Option nicht bereits aktiviert ist
bash
, ist sie möglicherweise genau das, was Sie benötigen. Es ist weniger schwächend als das Deaktivieren der gesamten Historie. Mit dieser Einstellung wird keine Befehlszeile, die mit einem Leerzeichen beginnt, in der Verlaufsliste gespeichert.Von diesen verwandten Links:
Warum hat bash die Option HISTCONTROL = ignorespace?
Warum speichert bash keine Befehle, die mit Leerzeichen beginnen?
quelle
Sie können den Verlauf vorübergehend deaktivieren:
set +o history
Es gibt einen Unterschied zwischen dem Deaktivieren des Verlaufs und dem Deaktivieren
HISTFILE
:gibt so etwas aus:
dh alle Befehle werden in der Verlaufsliste gespeichert. Tippe
exit
, um es zu speichern.Aber
gibt so etwas aus:
Zusammenfassung :
set +o history
für lange Sitzungen.HISTCONTROL
und<space>command
zu anderer Zeit.quelle