systemadmin.es > Script > Establecer contraseñas mediante scripts con passwd y chpasswd

Establecer contraseñas mediante scripts con passwd y chpasswd

Para poder definir contraseñas para los usuario de un sistema Linux desde script tenemos, principalmente, dos opciones: El comando passwd y el comando chpasswd.

En el caso que el comando passwd tenga la opción –stdin simplemente deberemos indicar la nueva contraseña por la entrada estándar indicando el nombre de usuario:

# echo 1234 | passwd --stdin jordi
Changing password for user jordi.
passwd: all authentication tokens updated successfully.

En caso que nuestro sistema no acepte dicha opción (por ejemplo los deribados de Debian) podemos usar el comando chpasswd. En este caso deberemos indicar por stdin la combinación de usuario y contraseña:

# echo "jordi:1234" | chpasswd

En el shadow encontraríamos:

jordi:xX/rQOLK9JEBc:15326:0:99999:7:::

Con la opción -m indicamos que queremos que se guarde la contraseña en formato MD5 el lugar de DES (por defecto):

# echo "jordi:1234" | chpasswd -m

En el shadow encontraríamos:

jordi:$1$mNJ/r.ev$zzmTx8PqQqNQcJLXQ9kKc0:15326:0:99999:7:::

2 comments to “Establecer contraseñas mediante scripts con passwd y chpasswd”

  1. Siempre me he preguntado, desde el punto de vista de un sistema con varios usuarios, si sería peligroso usar “echo” para datos sensibles, pero cuando lo he intentado nunca he podido ver algo así como “echo foobar” en la salida del comando “ps”.
    Por lo cual, tengo la duda de si por algún motivo que desconozco no aparece (ergo es seguro) o quizá ocurre tan rápido que a “ps” no le de tiempo nunca de listarlo (ergo un usuario malintencionado podría obtenerlo de alguna otra forma o simplemente esperar a que suene la flauta)… 😕

  2. Eso es cierto, si suena la flauta podrías ver el echo con la contraseña, por lo que sería mucho mejor usar algún software como pwgen para genera la contraseña y guardarla con un tee. Por ejemplo

    pwgen | tee -a password | passwd --stdin usuario
    

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>