Como impedir que uma senha ou outras informações confidenciais sejam armazenadas no histórico bash ao usar o grep?

21

Tive que fazer uma busca recente por uma senha que pode ter sido salva em um arquivo. Eu não queria que essa linha aparecesse na história do bash.

Como posso evitar que uma senha ou outras informações confidenciais sejam armazenadas no histórico bash ao usar o grep? Por exemplo, como posso obter o grep para ler o padrão de stdin ou console?

    
por Leo 25.07.2013 / 17:06

3 respostas

38

Se você colocar HISTCONTROL=ignorespace em seu .bashrc e colocar um espaço antes do nome do comando, ele não será adicionado ao seu histórico.

$ export HISTCONTROL=ignorespace
$ grep "passwd" secret_password_file.txt   # added to history
$  grep "passwd" secret_password_file.txt  # not added to history
    
por 25.07.2013 / 17:11
5

Apenas para completar, eu respondo a pergunta no corpo: como fazer com que o grep leia os padrões do stdin:

Você pode usar a opção -f :

grep -f- /path/to/file

Isso lerá qualquer número de padrões de stdin , um por linha. ( - significa stdin ; você também pode especificar um arquivo com padrões, um por linha). grep corresponderá às linhas em /path/to/file que correspondem a qualquer um dos padrões especificados.

    
por 26.07.2013 / 01:27
2

Isso é o melhor que consegui:

grep $(read -p "Pattern: "; echo $REPLY) .*

Isso é seguro o suficiente? Existe alguma maneira de recuperar o padrão diferente de rolar o terminal? Existe uma maneira mais agradável?

    
por 25.07.2013 / 17:06

Tags