È possibile aprire una sessione in incognito in bash?
Ad esempio, quando dobbiamo inserire le password nei comandi e non vogliamo bashaggiungerle alla cronologia.
secrectcommandnon sarà nella storia di Bash.
È possibile aprire una sessione in incognito in bash?
Ad esempio, quando dobbiamo inserire le password nei comandi e non vogliamo bashaggiungerle alla cronologia.
secrectcommandnon sarà nella storia di Bash.
Risposte:
Quando vuoi bashinterrompere la registrazione dei tuoi comandi, disattiva la HISTFILEvariabile:
HISTFILE=
Tutti gli altri comandi non dovrebbero più essere registrati .bash_history.
D'altra parte, se in realtà stai fornendo password come argomenti ai comandi, stai già facendo qualcosa di sbagliato. .bash_historynon è leggibile dal mondo e quindi non è la più grande minaccia in questa situazione:
pse /procsono il grosso problema. Tutti gli utenti del sistema possono vedere i comandi che stai attualmente eseguendo con tutti i loro argomenti . Il passaggio di password come argomenti della riga di comando è quindi intrinsecamente insicuro . Utilizzare variabili di ambiente o file di configurazione (che sono stati scelti 600) per fornire password in modo sicuro.
unset HISTFILEha un effetto simile. Ho una funzione per questo: n() { HISTFILE=; PS1="~${PS1#\~}"; }. In questo modo posso vedere chiaramente se sono in "modalità di navigazione in incognito" o no.
HISTCONTROL=ignorespace
Se questa opzione non è già impostata per bash, potrebbe essere proprio quello che ti serve. È meno debilitante che disabilitare tutta la storia. Con questo set, qualsiasi riga di comando che inizia con un carattere spazio non verrà salvata nell'elenco cronologico.
Da questi collegamenti correlati:
Perché bash ha un'opzione HISTCONTROL = ignorespace?
Perché bash non memorizza i comandi che iniziano con gli spazi?
Puoi disabilitare temporaneamente la cronologia: set +o history
set +o history
...
set -o history
C'è una differenza tra la disabilitazione della cronologia e il disinserimento HISTFILE:
HISTFILE=
date
ls
HISTFILE=~/.bash_history
history
produce qualcosa del genere:
84 HISTFILE=
85 date
87 ls
88 HISTFILE=~/.bash_history
89 history
cioè tutti i comandi vengono salvati nell'elenco cronologico. Digita exitper salvarlo.
Ma
set +o history
date
ls
set -o history
history
produce qualcosa del genere:
115 set +o history
116 history
Riepilogo :
set +o historyper sessioni lunghe.
HISTCONTROLe <space>commandaltre volte.
cat | basheseguirà una modifica non interattivabashsenza prompt, da riga di comando (solo l'editor interno della disciplina di riga) o cronologia.