DEV Community

Cover image for Vazou a senha na linha de comando?
Natanael Alves
Natanael Alves

Posted on • Edited on

Vazou a senha na linha de comando?

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

  1. Primeiro, você executa o comando history para saber em qual linha o comando a ser apagado está. Digamos que o comando está na linha 1234.
  2. Agora, só precisamos usar a flag -d do comando history para apagar uma linha específica do histórico, assim:
history -d 1234
Enter fullscreen mode Exit fullscreen mode

Para garanti que a linha foi apagada do histórico, usamos a flag -w para atualizar o histórico, assim:

history -w
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Se precisa de algo ainda mais bruto, você pode apagar todo o histórico do terminal com a flag -c

history -c
Enter fullscreen mode Exit fullscreen mode

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*"
Enter fullscreen mode Exit fullscreen mode

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.

Image of Datadog

The Future of AI, LLMs, and Observability on Google Cloud

Datadog sat down with Google’s Director of AI to discuss the current and future states of AI, ML, and LLMs on Google Cloud. Discover 7 key insights for technical leaders, covering everything from upskilling teams to observability best practices

Learn More

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay