Como fazer o 'sudo' pegar a senha de um arquivo?

9

Eu quero executar um comando que requer a senha do sudo:

sudo apt-get update

Isso não deveria funcionar (eu armazenei a senha em um arquivo de texto normal passwd.txt ):

sudo apt-get update <~/passwd.txt

Esta é a minha lógica para por que deveria funcionar: quando a senha é necessária, o usuário é solicitado a inserir a senha do teclado. Mas redirecionar o stdin para ler o arquivo passwd.txt deve funcionar.

Não deveria?

    
por MichaelB 21.07.2013 / 18:39

1 resposta

23

sudo não lê a senha de stdin por padrão. De sudo manpage:

-S  The -S (stdin) option causes sudo to read the password from the standard input instead of the terminal device.
    The password must be followed by a newline character.

Então você deve executar:

sudo -S apt-get update <~/passwd.txt

Tenha em mente que armazenar senhas em arquivos não é uma boa prática. Você deveria ler:

por Eric Carvalho 21.07.2013 / 18:44