Hoje notei que minha história do bash está completamente limpa. Não executei history -c
nem excluí o .bash_history
arquivo. Além de excluir o .bash_history
arquivo e history -c
, como o histórico do bash pode ser limpo?
bash
command-history
nik.1
fonte
fonte
>.bash_history
. Talvez alguém estivesse em sua conta e tentou esconder suas trilhas. Verifique horários incomuns de login comlast
, pesquisar até/var/log/auth.log
(dependendo do seu sistema).Respostas:
Ao fechar várias instâncias do bash ao mesmo tempo, existe uma condição de corrida conhecida que pode fazer com que o histórico seja limpo. Isso ocorre porque não há bloqueio usado quando o arquivo de histórico do bash é gravado.
Chet Ramey (o atual mantenedor do bash) fez um bom resumo das condições para esse problema:
Este tópico da lista de discussão do bug-bash contém uma discussão decente dos problemas, possíveis soluções e preocupações em torno disso.
Existem também outras possibilidades:
HISTSIZE
ouHISTFILESIZE
foi definido como 0history-size
foi definida como 0> "$HISTFILE"
ou similar)No último caso, convém verificar se alguém não acessou sua conta e está tentando ocultar seus rastros de maneira grosseira. Dê uma olhada
last
,/var/log/auth
(ou/var/log/secure
no CentOS / RHEL), e se você tem isso, qualquer processo de contabilização e / ou software de auditoria que você pode ter instalado.fonte
Como excluí acidentalmente meu histórico do bash:
Eu estava lançando meu próprio script readline de terminal alternativo a partir dos primeiros princípios: https://tiswww.cwru.edu/php/chet/readline/rluserman.html
e depois testá-lo em um terminal. Que o GNU Readline possui um tamanho de histórico e instruções de preservação de histórico incorporadas, para que o tamanho do histórico possa ser padronizado e, portanto, todo o seu histórico seja deslumbrado.
Recuperação do histórico se deixada na memória:
Se você capturá-lo antes de uma reinicialização ou se um terminal foi deixado aberto antes da limpeza, você poderá encontrar seu histórico na memória. Execute
history | cut -c 8- > histback_user1.txt
em todos os terminais deixados abertos e para todos os usuários. Se isso produzir um arquivo com seu histórico estendido, você poderá substituí-lo~/.bash_history
porhistback_user1.txt
. Verifique também o histórico de todos os usuários que efetuaram login recentemente no sistema, bem como o histórico do root. É fácil limpar acidentalmente o histórico do bash em muitas circunstâncias; portanto, se você quiser ter certeza de que não há perda de histórico, precisará de um script de backup diário.fonte