Digitei minha senha acidentalmente na linha de comando do bash, confundindo a Last login: ...
linha com Wrong password
(eu estava com pressa). O que faço para cobrir meu rastro?
O que fiz foi editar .bash_history
e excluir a linha incorreta (tive que fazer login novamente uma vez para ver a senha aparecer no arquivo para que eu pudesse excluí-la e fazer login novamente para ver desaparecer do histórico disponível na tecla UPARROW).
Existe algum outro lugar onde o histórico de comandos possa ser salvo? O sistema é o CentOS 6.5.
linux
command-line
bash
centos
MaDa
fonte
fonte
/dev/null
.ssh-keygen -f id_rsa -p
.Respostas:
Você pode remover apenas a linha incorreta do
bash
histórico, em vez de limpar o histórico inteiro. Simplesmente remova a linha com a-d
bandeira e salve (escreva) o novo histórico com a-w
bandeira:fonte
Existem duas partes para isso:
bash
armazena o histórico em um arquivo~/.bash_history
que, por padrão, é gravado no final da sessãohistory
que é mantido na memóriaPara estar seguro, você precisa limpá-lo da sessão:
e trunque o arquivo de histórico conforme necessário:
Se a sua sessão na qual você digitou a senha ainda estiver aberta, outra maneira de cobrir seu rastreio é definir a
HISTFILE
variável para o dispositivo nulo para que o histórico não seja gravado~/.bash_history
quando a sessão terminar:fonte
shred
substituí-lo ou substituí-lo várias vezes?HISTFILE=
é suficiente. Debash(1)
: se não estiver definido, o histórico de comandos não será salvo quando um shell sair.Como o bash (pelo menos todas as versões históricas e atuais que eu conheço) não salva o histórico automaticamente até você sair, uma estratégia geralmente aplicável quando você digita um comando que deseja garantir que nunca seja salvo é digitar imediatamente:
Isso mata o shell
SIGKILL
, que não pode ser capturado, portanto o shell não tem como salvar nada na saída.A maioria das outras abordagens envolve a limpeza após o fato (ou seja, após os dados já terem atingido o disco), que tem muito mais chances de erro (falta de uma cópia), especialmente se o sistema estiver usando btrfs ou similar.
fonte
rm ~/.bash_history~
de remover o arquivo de backup no caso do OP, quando já foi salvoDepois de digitar acidentalmente algo que não deseja que seja armazenado no histórico, você pode digitar:
unset HISTFILE
O Bash não saberá onde armazenar o histórico quando você estiver desconectado; portanto, isso desativará o registro do histórico durante toda a sessão.
fonte
Meu truque favorito para isso é pressionar a seta para cima, retroceder sobre o comando, digitar algo (pode não ser necessário), pressionar a seta para baixo, digitar "ls" e pressionar enter. Parece realmente hokey, mas realmente funciona. Descobri isso quando fiquei aborrecido depois de editar o comando errado no meu histórico e depois arruiná-lo ao não pressionar Ctrl-C para abortar a edição. Eu acho que o bash suporta a história revisionista. ;-)
Parece:
fonte
Além das outras respostas, pode ser relevante que a senha também seja encontrada no buffer de rolagem do terminal - o histórico do texto exibido - agora e, mais um problema, possivelmente no disco rígido, se o emulador de terminal salvou o histórico para o disco. Isso acontece no konsole do KDE, pois o tamanho do histórico é definido como "scrollback ilimitado", para nunca descartar nenhuma saída.
fonte
Com
$<space> command
, um comando não é adicionado ao histórico, às vezes útilfonte
ps
.Outra alternativa para evitar salvar no arquivo de histórico (antes de sair) é simplesmente
e depois saia. Pare de gravar o histórico no arquivo (já que o arquivo é somente leitura), para que toda a sessão do bash seja descartada e o histórico anterior mantido.
Faça login novamente e redefina as permissões para
600
(ou não, dependendo de como você é paranóico!).fonte
Vejo repetidamente mencionado
A primeira parte é definitivamente verdadeira, mas você não precisa recorrer à edição manual de .bash_history para corrigi-lo. Se você combinar os dois comandos em uma linha, funcionará perfeitamente:
fonte
Muitas das respostas aqui tentam remover o comando em questão do histórico da sessão atual antes de ser gravado em
$HISTFILE
(~ / .bash_history por padrão). No entanto, se você definiuPROMPT_COMMAND=history -a
o comando com sua senha, ela será gravada imediatamente$HISTFILE
quando o prompt for exibido após o término do comando. Você precisará editar o seu$HISTFILE
para removê-lo.Essa configuração é comumente usada para intercalar comandos de várias sessões do bash aberto .
fonte
Você também deve verificar os logs do syslog. Logins inválidos geralmente serão registrados no syslog.
/ var / log / messages ou o equivalente ao seu sistema operacional.
fonte