Relato
Estava eu acessando o terminal do servidor de produção e - sem querer querendo - executei um comando junto com uma senha de acesso que não deveria estar ali quando executasse esse comando. Agora, a senha estava exposta no histórico de comando do terminal. Felizmente encontrei uma forma de resolver isso e vou compartilhar para caso um dia, quem sabe, você precisar por algum motivo - mas ninguém precisar sabe que um dia você precisou fazer isso, certo?
Como fazer
- Primeiro, você executa o comando
history
para saber em qual linha o comando a ser apagado está. Digamos que o comando está na linha1234
. - Agora, só precisamos usar a flag
-d
do comando history para apagar uma linha específica do histórico, assim:
history -d 1234
Para garanti que a linha foi apagada do histórico, usamos a flag -w para atualizar o histórico, assim:
history -w
Se precisar de uma solução mais drástica para deletar um intervalo de linhas, você pode utilizar um for loop
:
for i in {[fim]..[início]}; do history -d $i; done
Se precisa de algo ainda mais bruto, você pode apagar todo o histórico do terminal com a flag -c
history -c
Se quiser uma segurança a mais, no aquivo de configurações do terminal, você pode informar que comandos com certas palavras-chaves não vão ser registrado no histórico de comando. No meu caso, o arquivo de configs é o .bashrc
e nele eu disse que qualquer comando que tenha o termo "senha" ou "pass..." devem ser ignorados do histórico. Para isso, precisa apenas adicionar o seguinte trecho no arquivo de configuração:
export HISTIGNORE="*senha*:pass*:*history*-d*"
O valor atribuído à HISTIGNORE
é uma expressão regular e você pode adicionar várias separando-as por ":" .
Conclusão
Espero que isso nunca aconteça com você, mas, se um dia acontecer, está aí a solução e ninguém além de você vai saber disso hehehe. Mas tome cuidado pra não precisa usar essa artimanha de novo, blz?. Espero que tenham gostado dessa e até a próxima.
Top comments (0)