Por que alguém não deveria usar senhas na linha de comando?

31

Por que as pessoas temem escrever senhas na linha de comando?

O arquivo de histórico está localizado em ~/.history , então está disponível apenas para o usuário que executou os comandos (e o root).

    
por Dor 08.06.2013 / 21:25

3 respostas

51

As linhas de comando não estão apenas disponíveis no histórico. Eles também estão disponíveis, por exemplo, na saída de ps -ocmd ou através do sistema de arquivos /proc . ( /proc/<pid>/cmdline ) que é onde ps os lê.

Além disso, os diretórios pessoais dos usuários geralmente são legíveis por grupos ou por todo o mundo; você pode tornar o arquivo de histórico somente legível pelo usuário, mas isso pode não sobreviver à exclusão e à recriação.

    
por 08.06.2013 / 21:31
17

Senhas na linha de comando são apenas uma má ideia a toda a volta. Além dos métodos discutidos nas outras respostas:

  • / proc
  • lista de processos ( ps )
  • arquivo de histórico do usuário

Os comandos do usuário também podem ser exibidos nesses locais:

  • registros de auditoria
  • / var / log / *

Além disso, os comandos do usuário também podem aparecer quando os usuários fazem login entre sistemas, portanto, em geral, é uma prática ruim e deve ser evitada sempre.

    
por 09.06.2013 / 02:35
11

O problema é a visibilidade dos parâmetros (para outros usuários na maioria dos casos, mesmo para o root) enquanto o comando está em execução. Veja a saída de

ps -eo pid,user,args
    
por 08.06.2013 / 21:32