En la versión actual de Raspian, sé que es posible cambiar la contraseña del usuario conectado actualmente desde la línea de comandos de la siguiente manera:
sudo passwd
que luego solicitará al usuario que ingrese una nueva contraseña dos veces. Esto producirá resultados de esta manera:
Changing password for pi.
(current) UNIX password:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Me preguntaba si hay una manera posible de cambiar una contraseña mediante programación, como desde un script de shell.
Estoy tratando de hacer un script de configuración para implementar en mi Raspberry Pis y no quiero tener que escribir manualmente nuevas contraseñas para ellos.

sudo. Si lo usasudo, puede forzar una nueva contraseña para cualquier usuario sin necesidad de conocer la contraseña actual de ese usuario.expect(1)podría ayudar tambiénRespuestas:
Estás buscando el
chpasswdcomando. Harías algo como esto:Tenga en cuenta que debe ejecutarse como root, al menos con la configuración PAM predeterminada. Pero presumiblemente ejecutar como root no es un problema para un script de implementación del sistema.
Además, puede hacer múltiples usuarios a la vez al alimentarlo con múltiples líneas de entrada.
fuente
Otra alternativa es usar el
yescomando en su script.Esto enviará
newpasswordalpasswdcomando parayouruser.Cabe mencionar que establecer / modificar las contraseñas de los usuarios a través de scripts puede presentar riesgos de seguridad y debe evitarse siempre que sea posible.
EDITAR:
Esta respuesta requiere acceso de root. Disculpas por no mencionar esto anteriormente. Es un método que uso cuando realizo tareas de administración que requieren acceso de root.
fuente
passwdlea desdestdinun terminal (teclado) en lugar de hacerlo, ¿cómo puede funcionar esto cuando se lepasswdsolicita primero la contraseña antigua de un usuario y luego la nueva?youruseral final). Podría funcionar en algún lugar ...passwdcomando de las utilidades ocultas de Linux acepta entradas redirigidas (a diferencia de, por ejemplo, OpenSSHssh). Sinyesembargo, el uso no es una buena idea: expone la contraseña a los intrusos que miran la lista de procesos en el momento equivocado. El usoechono tendría este defecto porque es un shell incorporado.