Alterar Senha Programaticamente

8

Na versão atual do Raspian, eu sei que é possível alterar a senha do usuário logado atual da linha de comando da seguinte forma:

sudo passwd

que solicitará ao usuário que digite uma nova senha duas vezes. Isso produzirá a saída da seguinte forma:

Changing password for pi.
(current) UNIX password:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

Eu queria saber se existe uma maneira possível de alterar uma senha programaticamente, como em um script de shell.

Estou tentando fazer um script de configuração para implantar no meu Raspberry Pis e não quero ter que digitar manualmente novas senhas para eles.

    
por James Taylor 20.04.2015 / 19:31

2 respostas

13

Você está procurando o comando chpasswd . Você faria algo assim:

echo 'pi:newpassword' | chpasswd # change user pi password to newpassword

Note que ele precisa ser executado como root, pelo menos com a configuração padrão do PAM. Mas, presumivelmente, executar como root não é um problema para um script de implantação do sistema.

Além disso, você pode fazer vários usuários ao mesmo tempo, alimentando várias linhas de entrada.

    
por 20.04.2015 / 19:45
3

Outra alternativa é usar o comando yes no seu script.

yes newpassword | passwd youruser

Isso enviará newpassword para o comando passwd para youruser .

Deve-se mencionar que a configuração / modificação de senhas de usuários por meio de scripts pode apresentar riscos de segurança e deve ser evitada sempre que possível.

EDITAR:

Esta resposta requer acesso root. Desculpas por não mencionar isso anteriormente. É um método que eu uso ao executar tarefas de administração que requerem acesso root.

    
por 20.04.2015 / 20:13