Accidentalmente escribí mi contraseña en la línea de comando bash, confundiendo la Last login: ...
línea con Wrong password
(tenía prisa). ¿Qué hago para cubrir mi rastro?
Lo que hice fue editar .bash_history
y eliminar la línea ofensiva (tuve que volver a iniciar sesión una vez para ver la contraseña aparecer en el archivo para poder eliminarla, y volver a iniciar sesión nuevamente para verla desaparecer del historial disponible en la tecla FLECHA ARRIBA).
¿Hay algún otro lugar donde se pueda guardar el historial de comandos? El sistema es CentOS 6.5.
linux
command-line
bash
centos
MaDa
fuente
fuente
/dev/null
.ssh-keygen -f id_rsa -p
.Respuestas:
Puede eliminar solo la línea ofensiva del
bash
historial de, en lugar de borrar todo el historial. Simplemente elimine la línea con la-d
bandera, luego guarde (escriba) el nuevo historial con la-w
bandera:fuente
Hay dos partes para esto:
bash
almacena el historial en un archivo~/.bash_history
que, por defecto, se escribe al final de la sesiónhistory
que se guarda en la memoriaPara estar seguro, debe borrarlo de la sesión:
y truncar el archivo de historial según sea necesario:
Si su sesión en la que escribió la contraseña aún está abierta, entonces otra forma de cubrir su rastreo es establecer la
HISTFILE
variable en el dispositivo nulo para que no se escriba el historial~/.bash_history
cuando salga la sesión:fuente
shred
el archivo o sobreescribirlo muchas veces?HISTFILE=
es suficiente. Debash(1)
: si no está configurado, el historial de comandos no se guarda cuando sale un shell.Dado que bash (al menos todas las versiones históricas y actuales que conozco) no guarda automáticamente el historial hasta que salga, una estrategia generalmente aplicable cuando ha escrito un comando que desea asegurarse de que nunca se guarde es escribir de inmediato:
Esto mata el caparazón
SIGKILL
, que no se puede atrapar, por lo que el caparazón no tiene forma de guardar nada al salir.La mayoría de los otros enfoques implican la depuración después del hecho (es decir, después de que los datos ya llegaron al disco), lo que tiene muchas más posibilidades de error (falta una copia), especialmente si el sistema podría estar usando btrfs o similar.
fuente
rm ~/.bash_history~
de eliminar el archivo de copia de seguridad en el caso del OP cuando ya se ha guardadoDespués de escribir accidentalmente algo que no deseaba almacenar en el historial, puede escribir:
unset HISTFILE
Bash no sabrá dónde almacenar el historial cuando cierre la sesión, por lo que efectivamente deshabilitará el registro del historial para toda la sesión.
fuente
Mi truco favorito para esto es presionar la flecha hacia arriba, retroceder sobre el comando, escribir algo (puede que no sea necesario), presionar la flecha hacia abajo, escribir "ls" y presionar enter. Se siente realmente tonto, pero en realidad funciona. Descubrí esto cuando me molesté después de editar el comando incorrecto en mi historial y luego arruinarlo al no presionar ctrl-c para abortar la edición. Supongo que bash es compatible con la historia revisionista. ;-)
Parece:
fuente
Además de las otras respuestas, puede ser relevante que la contraseña también se encuentre en el búfer de desplazamiento del terminal, el historial del texto que se muestra, ahora y, lo que es más problemático, posiblemente en el disco duro, si el emulador de terminal guardó el historia al disco. Esto sucede en KDE konsole si el tamaño del historial está configurado en "desplazamiento ilimitado", para nunca descartar ningún resultado.
fuente
Con
$<space> command
, un comando no se agrega al historial, a veces útilfuente
ps
.Otra alternativa más para evitar guardar en el archivo de historial (antes de cerrar sesión) es simplemente
y luego cerrar sesión. Deje de escribir el historial en el archivo (ya que el archivo es de solo lectura) para que se descarte toda la sesión bash y se conserve el historial anterior.
Inicie sesión nuevamente y restablezca los permisos a
600
(o no, dependiendo de lo paranoico que sea).fuente
Veo repetidamente mencionado
La primera parte es definitivamente cierta, pero no tiene que recurrir a la edición manual de .bash_history para solucionarlo. Si combina los dos comandos en una línea, funciona perfectamente bien:
fuente
Muchas de las respuestas aquí intentan eliminar el comando en cuestión del historial de la sesión curh bash antes de que se escriba en
$HISTFILE
(~ / .bash_history por defecto). Sin embargo, si ha configuradoPROMPT_COMMAND=history -a
el comando con su contraseña, se escribe inmediatamente en su$HISTFILE
cuando se muestra el mensaje una vez que finaliza el comando. Tendrás que editar tu$HISTFILE
para eliminarlo.Esta configuración se usa comúnmente para intercalar comandos de múltiples sesiones de bash abiertas .
fuente
También querrá verificar los registros de syslog. Los inicios de sesión no válidos generalmente se registrarán en syslog.
/ var / log / messages o el equivalente para su sistema operativo.
fuente