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 .
secrectcommand
wird nicht in der Bash-Geschichte sein.
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 .
secrectcommand
wird nicht in der Bash-Geschichte sein.
Antworten:
Wenn Sie die bash
Protokollierung Ihrer Befehle beenden möchten , deaktivieren Sie einfach die HISTFILE
Variable:
HISTFILE=
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.
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.
HISTCONTROL=ignorespace
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?
Sie können den Verlauf vorübergehend deaktivieren: set +o history
set +o history
...
set -o history
Es gibt einen Unterschied zwischen dem Deaktivieren des Verlaufs und dem Deaktivieren HISTFILE
:
HISTFILE=
date
ls
HISTFILE=~/.bash_history
history
gibt so etwas aus:
84 HISTFILE=
85 date
87 ls
88 HISTFILE=~/.bash_history
89 history
dh alle Befehle werden in der Verlaufsliste gespeichert. Tippe exit
, um es zu speichern.
Aber
set +o history
date
ls
set -o history
history
gibt so etwas aus:
115 set +o history
116 history
Zusammenfassung :
set +o history
für lange Sitzungen.
HISTCONTROL
und <space>command
zu anderer Zeit.
cat | bash
führt eine nicht interaktivebash
Bearbeitung ohne Eingabeaufforderung, Befehlszeilenbearbeitung (nur der interne Editor der Zeilendisziplin) oder Verlauf aus.