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
chpasswd
comando. 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
yes
comando en su script.Esto enviará
newpassword
alpasswd
comando 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
passwd
lea desdestdin
un terminal (teclado) en lugar de hacerlo, ¿cómo puede funcionar esto cuando se lepasswd
solicita primero la contraseña antigua de un usuario y luego la nueva?youruser
al final). Podría funcionar en algún lugar ...passwd
comando de las utilidades ocultas de Linux acepta entradas redirigidas (a diferencia de, por ejemplo, OpenSSHssh
). Sinyes
embargo, 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 usoecho
no tendría este defecto porque es un shell incorporado.