2010-01-13 20 views
6

Necesito sincronizar una cuenta de usuario y contraseña a una fuente externa en un sistema con busybox y openssl instalado. Cuando la fuente externa le dice a mi sistema que actualice las credenciales, ¿cómo cambio la contraseña del usuario en un script? Tendré la contraseña en texto plano.¿Cómo se puede cambiar una contraseña de usuario en una secuencia de comandos con busybox y openssl?

Esto tiene que ser automatizado, y por lo que puedo decir busybox passwd es interactivo y no quiero particularmente escribir un script de tipo esperado para passwd si eso es posible. Parece que openssl puede generar contraseñas hash (openssl passwd -1 -salt "abcdefgh" {password}), pero ¿tendré que modificar/etc/shadow directamente?

Busybox tiene these comandos disponibles.

Respuesta

6

Puede escribir un pequeño script como este para actualizar la contraseña. Coloque el siguiente texto en un archivo y ejecútelo. Cambiará tu contraseña.

#!/Bin/sh
passwd < < EOF
< contraseña anterior >
< nueva contraseña >
< nueva contraseña >
EOF

5

Resulta que las versiones actuales de busybox tienen chpasswd (source code). chpasswd toma un par de dos puntos delimitados nombre de usuario: contraseña en stdin. No sé si puedo actualizar busybox en mi sistema, pero dejaré esta respuesta por si alguien viene a buscarla.

De la documentación busybox:

chpasswd 
chpasswd [--md5|--encrypted] 

Read user:password from stdin and update /etc/passwd 

Options: 

     -e,--encrypted Supplied passwords are in encrypted form 
     -m,--md5  Use MD5 encryption instead of DES 
Cuestiones relacionadas