Tutorial del comando chpasswd de Linux para principiantes (5 ejemplos)
Aquí en HowtoForge, ya hemos hablado del comando passwd, que te permite cambiar la contraseña de tu cuenta en un sistema Linux. Pero, ¿y si quieres cambiar las contraseñas de varios usuarios de una sola vez? Existe un comando, chpasswd, que te permite hacerlo.
En este tutorial, hablaremos de los fundamentos de esta herramienta utilizando algunos ejemplos fáciles de entender. Pero antes de hacerlo, vale la pena mencionar que todos los ejemplos aquí expuestos han sido probados en una máquina Ubuntu 18.04 LTS.
Comando chpasswd de Linux
El comando chpasswd de Linux te permite actualizar contraseñas por lotes. A continuación se muestra su sintaxis:
chpasswd [options]
Y esto es lo que dice la página man de la herramienta al respecto:
The chpasswd command reads a list of user name and password pairs from standard input and uses this information to update a group of existing users. Each line is of the format:
user_name:password
By default the passwords must be supplied in clear-text, and are
encrypted by chpasswd. Also the password age will be updated, if
present.
A continuación, te ofrecemos algunos ejemplos de preguntas y respuestas que te darán una buena idea de cómo funciona chpasswd.
Q1. ¿Cómo se utiliza el comando chpasswd?
El uso básico, como se explica en la sección de introducción anterior, es bastante sencillo. Sólo tienes que ejecutar el comando chpasswd (con privilegios de root) sin ninguna opción, e introducir la nueva contraseña en formato «nombre de usuario:contraseña».
Por ejemplo, ejecuta el comando
$ chpasswd
e introduje lo siguiente
himanshu:thisismynewpassword789
test:latestpassword123
Nota1: Como chpasswd espera que introduzcas la entrada en stdin, no olvides pulsar Ctrl+D cuando hayas terminado de introducir los nombres de usuario y las nuevas contraseñas.
Nota2: Las contraseñas utilizadas en el ejemplo son sólo para fines de demostración, no las utilices de ninguna manera.
Q2. ¿Cómo hacer que chpasswd lea información de un archivo?
A veces, puedes querer que la herramienta lea la información de entrada de un archivo (en lugar de stdin). Esto puede hacerse de la siguiente manera:
cat [FILENAME] | chpasswd
Por ejemplo:
cat newpass.txt | chpasswd
Ten en cuenta que el formato de entrada sigue siendo el mismo: ‘nombredeusuario:contraseña’, sólo que ahora se escribe en un archivo.
Q3. ¿Cómo gestiona chpasswd la encriptación?
Así lo explica la página man de la herramienta:
By default, passwords are encrypted by PAM, but (even if not recommended) you can select a different encryption method with the -e, -m, or -c options.
Except when PAM is used to encrypt the passwords,chpasswd first updates
all the passwords in memory, and then commits all the changes to disk
if no errors occurred for any user.
When PAM is used to encrypt the passwords (and update the passwords in
the system database) then if a password cannot be updated chpasswd
continues updating the passwords of the next users, and will return an
error code on exit.
This command is intended to be used in a large system environment where
many accounts are created at a single time.
Q4. ¿Cómo activar un método de encriptación diferente?
Puedes hacerlo utilizando la opción -c de la línea de comandos. Por defecto, como ya sabrás a estas alturas, se utiliza PAM como método de encriptación, pero utilizando -c, puedes especificar cualquiera de los siguientes: DES, MD5, NINGUNO y SHA256 o SHA512 (siempre que tu libc admita el método que elijas).
Por ejemplo:
chpasswd -c DES
Q5. ¿Cómo informar a chpasswd sobre la entrada cifrada?
Si quieres, también puedes proporcionar contraseñas cifradas en la entrada. Pero para ello, tienes que utilizar la opción -e para que chpasswd lo sepa.
chpasswd -e
Conclusión
El comando chpasswd lo suelen utilizar los administradores de sistemas o las personas encargadas de la gestión de usuarios en un PC Linux o en una red, aunque no está de más que lo conozcas aunque seas un usuario normal. Aquí hemos analizado las principales opciones de línea de comandos de esta herramienta. Para saber más, dirígete a su página man.