Hoy noté que mi historial de bash se borró por completo. No he ejecutado history -c
ni eliminado el .bash_history
archivo. Además de eliminar el .bash_history
archivo y history -c
, ¿cómo se puede borrar el historial de bash?
bash
command-history
nik.1
fuente
fuente
>.bash_history
. Tal vez alguien estaba en su cuenta e intentó ocultar sus rastros. Verifique los tiempos de inicio de sesión inusuales conlast
, busque a través/var/log/auth.log
(dependiendo de su sistema).Respuestas:
Al cerrar varias instancias de bash al mismo tiempo, hay una condición de carrera conocida que puede hacer que se borre el historial. Esto ocurre porque no se usa bloqueo cuando se escribe el archivo de historial de bash.
Chet Ramey (el actual mantenedor de bash) dio un buen resumen de las condiciones para este problema:
Este hilo de la lista de correo de bug-bash contiene una discusión decente de los problemas, las posibles soluciones y las preocupaciones que lo rodean.
También hay algunas otras posibilidades:
HISTSIZE
oHISTFILESIZE
se estableció en 0history-size
se estableció en 0> "$HISTFILE"
o similar)En el último caso, es posible que desee verificar que alguien no haya accedido a su cuenta y esté tratando de ocultar sus pistas de una manera cruda. Echar un vistazo a
last
,/var/log/auth
(o/var/log/secure
en CentOS / RHEL), y si lo tiene, cualquier proceso de contabilidad y / o software de auditoría que pueda haber instalado.fuente
Cómo eliminé accidentalmente mi historial de bash:
Estaba desarrollando mi propio script alternativo de readline de terminal desde los primeros principios: https://tiswww.cwru.edu/php/chet/readline/rluserman.html
y luego probándolo en una terminal. Esa línea de lectura de GNU tiene un tamaño de historial e instrucciones de preservación de historial incorporadas, por lo que el tamaño de hist puede ser predeterminado y, por lo tanto, todo su historial queda anonadado.
Recuperación del historial si se deja en la memoria:
Si lo detecta antes de un reinicio, o si un terminal se dejó abierto antes del borrado, es posible que pueda encontrar su historial en la memoria. Ejecutar
history | cut -c 8- > histback_user1.txt
en todos los terminales abiertos y para cada usuario. Si eso produce un archivo con su historial extendido, puede reemplazarlo~/.bash_history
porhistback_user1.txt
. Compruebe también el historial de todos los usuarios que iniciaron sesión recientemente en el sistema, así como el historial de la raíz. Es fácil borrar accidentalmente el historial de bash en muchas circunstancias, por lo que si desea asegurarse de que no se pierda el historial, necesita un script de copia de seguridad diario.fuente