¿Es posible abrir una sesión de incógnito en bash
?
Por ejemplo, cuando necesitamos ingresar contraseñas en los comandos y no queremos bash
agregarlas al historial.
secrectcommand
no estará en la historia de bash.
¿Es posible abrir una sesión de incógnito en bash
?
Por ejemplo, cuando necesitamos ingresar contraseñas en los comandos y no queremos bash
agregarlas al historial.
secrectcommand
no estará en la historia de bash.
Respuestas:
Cuando desee bash
dejar de registrar sus comandos, simplemente desarme la HISTFILE
variable:
HISTFILE=
Todos los comandos adicionales ya no deberían estar registrados .bash_history
.
Por otro lado, si en realidad está proporcionando contraseñas como argumentos para los comandos, ya está haciendo algo mal. .bash_history
no es legible en el mundo y, por lo tanto, no es la mayor amenaza en esta situación:
ps
Y /proc
son el gran problema. Todos los usuarios del sistema pueden ver los comandos que está ejecutando actualmente con todos sus argumentos . Por lo tanto, pasar contraseñas como argumentos de línea de comandos es inherentemente inseguro . Utilice variables de entorno o archivos de configuración (que ha modificado 600) para proporcionar contraseñas de forma segura.
unset HISTFILE
tiene un efecto similar Tengo una función para esto: n() { HISTFILE=; PS1="~${PS1#\~}"; }
. De esa manera puedo ver claramente si estoy en "modo incógnito" o no.
HISTCONTROL=ignorespace
Si esta opción aún no está configurada bash
, puede ser justo lo que necesita. Es menos debilitante que deshabilitar toda la historia. Con ese conjunto, cualquier línea de comando que comience con un carácter de espacio no se guardará en la lista del historial.
De estos enlaces relacionados:
¿Por qué bash tiene una opción HISTCONTROL = ignorespace?
¿Por qué bash no almacena comandos que comienzan con espacios?
Puedes deshabilitar temporalmente el historial: set +o history
set +o history
...
set -o history
Hay una diferencia entre deshabilitar el historial y desarmar HISTFILE
:
HISTFILE=
date
ls
HISTFILE=~/.bash_history
history
produce algo como esto:
84 HISTFILE=
85 date
87 ls
88 HISTFILE=~/.bash_history
89 history
es decir, todos los comandos se guardan en la lista del historial. Escribe exit
para guardarlo.
Pero
set +o history
date
ls
set -o history
history
produce algo como esto:
115 set +o history
116 history
Resumen :
set +o history
para largas sesiones.
HISTCONTROL
y <space>command
en otro momento
cat | bash
ejecutará unabash
edición no interactiva sin solicitud de línea de comandos (solo el editor interno de la disciplina de línea) o el historial.