Los comandos useradd y usermod tienen la opción -p que nos permiten poner una contraseña a un usuario nuevo o a uno ya creado. Cuándo establecemos una contraseña con estos comandos debe ir cifrada con el algoritmo DES o MD5.

Cifrar en MD5

Para cifrar una cadena de texto con el algoritmo MD5 podemos recurrir a openssl como se muestra a continuación.

[usuario@equipo]$ echo -n 'contraseña' | openssl md5
(stdin)= 4c882dcb24bcb1bc225391a602feca7c

Es importante no olvidarse de la opción -n, de lo contrario se añadirá un carácter de salto de linea al final del texto y también será encriptada.

Cifrar en DES

Para cifrar con el algoritmo DES recurrimos a la función crypt de perl.

[usuario@equipo]$ perl -e 'print crypt("contraseña",269);'
26ZsD5oQua1AE

Establecer la contraseña

Para establecer la contraseña podemos cifrar primero la contraseña y copiar y pegar el resultado para usar con usermod o bien escribir todo en una sola linea.

Para el cifrado DES

[root@host ~]# usermod -p $(perl -e 'print crypt("contraseña",269);') usuario

Para el cifrado MD5

Si usamos el cifrado MD5 tenemos que usar cut para "seleccionar" el trozo que nos interesa del resultado que nos da openssl.

[root@host ~]# usermod -p $(echo -n 'contraseña' | openssl md5 | cut -d ' ' -f 2) usuario
Importante: Ten en cuenta que el proceso que se crea al ejecutar los comandos pueden ser observados por otros y además quedan almacenados en el historial del terminal.