Después de ver la expiración de una cuenta en un tutorial anterior, veremos cómo gestionar la expiración de una contraseña. La diferencia aquí es que gestionaremos la expiración de una contraseña y su renovación por parte del usuario, y no la expiración de una cuenta, que impide cualquier acción/conexión del usuario.
Para ser más claros, cuando una contraseña expira, el usuario está obligado a cambiarla después de una autenticación correcta. Más bien, mira:
Mateo@p02:~$ ssh test03@192.168.1.22
test03@192.168.1.22's password:
You are required to change your password immediately (root enforced)
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Fri May 17 14:35:00 2024 from poz.home
WARNING: Your password has expired.
You must change your password now and login again!
Cambio de la contraseña para test03.
Contraseña UNIX (actual):
Ingrese la nueva contraseña UNIX:
Vuelva a escribir la nueva contraseña UNIX:
passwd: la contraseña ha sido actualizada con éxito
Connection to 192.168.1.22 closed.
Por lo tanto, vemos que una vez que una contraseña está marcada como “caducada” (expired), el usuario puede autenticarse por última vez con ella, pero desde el momento en que pasa la fase de autenticación, debe ingresar una nueva contraseña (diferente, por supuesto).
Para hacerlo, usaremos solo comandos nativos de los sistemas operativos Unix, a saber, el comando “chage
” y “passwd
“.
Cabe señalar que el cambio regular de contraseñas de cuentas de usuario y cuentas privilegiadas es parte de las mejores prácticas de seguridad. Para las cuentas con privilegios, un cambio por semestre es mínimo.
Sugerencia: No dudes en utilizar recordatorios de agenda y un procedimiento escrito que detalle el procedimiento para cambiar la contraseña y los cambios que esto genera. De esta manera, desmitificas el procedimiento y el impacto del cambio de contraseña y lo ejecutarás más fácilmente.
Forzar a un Usuario a Cambiar su Contraseña
Para obligar a un usuario a modificar la contraseña de su cuenta en su próximo inicio de sesión en Linux, se debe utilizar la opción “-d
” del comando “chage
” que permite gestionar los atributos de contraseñas de una cuenta. Por ejemplo, para el usuario “test01“:
chage -d0 test01
La opción “-d
” permite, más precisamente, pasar una contraseña a estado expirado.
Planificar la Expiración de una Contraseña
Para planificar la expiración de una contraseña, es decir, prever que a partir de tal día, un usuario deba cambiar su contraseña en su próximo inicio de sesión, también utilizaremos la opción “-d
” del comando “chage
“:
chage -d 2025-01-30 test01
Así, la contraseña del usuario “test01” expirará el día 30 de enero de 2025. Como ocurre con la expiración de una cuenta, el siguiente truco, que utiliza el comando “date
“, permite planificar una expiración a +30 días independientemente de la fecha actual:
chage -d `date -d "30 days" +"%Y-%m-%d"` test01
También es posible realizar esta planificación una sola vez, por ejemplo, haciendo que la contraseña caduque cada 90 días con la opción “-M
“:
chage -M 90 test01
La opción “-M
” permite gestionar el número máximo de días entre cada cambio de contraseña. Número más allá del cual una cuenta se verá obligada a cambiar su contraseña
Ten en cuenta que la opción “-m
” (en minúsculas) permite gestionar un número mínimo de días entre cada cambio de contraseña.
Mostrar un Mensaje de Advertencia
De forma predeterminada, un mensaje de advertencia permite alertar al usuario sobre la próxima expiración de su contraseña. De forma predeterminada, el mensaje de advertencia se muestra 7 días antes de la expiración de la contraseña. Sin embargo, es posible cambiar este valor, para acortar o alargar esta fecha de advertencia.
Para ello, utilizaremos la opción “-W
“, por ejemplo, si queremos mostrar un mensaje de advertencia 15 días antes de la fecha de expiración de la contraseña para el usuario “test01“:
chage -W 15 test01
Desactivar la Expiración de la Contraseña
Si deseas dar marcha atrás, también se puede utilizar el comando “chage
“. Solo tendremos que restablecer o desactivar las opciones vistas anteriormente:
chage -m 0 -M 99999 -I -1 -E -1 test01
Respecto a las opciones utilizadas:
-I
: En caso de que la cuenta tenga configurada una fecha de duración de inactividad, este valor se desactiva con el valor “-1”-E
: En caso de que la cuenta esté expirada, se reactiva con el valor “-1”-m
: permite configurar un número mínimo de días requeridos antes del cambio de contraseña-M
: Permite gestionar el número máximo de días entre cada cambio de contraseña. Número más allá del cual una cuenta se verá obligada a cambiar su contraseña
Al restablecer estos parámetros o desactivarlos, como es su estado original, desactivaremos la expiración de una contraseña. Esta podrá utilizarse sin obligación de modificar la contraseña 🙂
Visualizar los Atributos de Contraseña de una Cuenta
Hasta ahora, hemos visto cómo modificar los parámetros “avanzados” de una cuenta para gestionar su contraseña y más concretamente su expiración. Veremos cómo visualizar los atributos modificados, más precisamente con el siguiente comando:
chage --list test01
Esta es una posible salida:
Último cambio de contraseña: dic. 12, 2025
Caducidad de la contraseña: dic. 15, 2025
Contraseña desactivada: nunca
Caducidad de la cuenta: nunca
Número mínimo de días entre cambios de contraseña: 0
Número máximo de días entre cambios de contraseña: 3
Número de días de aviso antes de la caducidad de la contraseña: 7
Esto es todo por este tutorial, en mi opinión es interesante poner en práctica esta buena práctica de seguridad, y no sólo para los entornos Windows donde ya se ha democratizado. No dudes en compartir tus trucos y opiniones en los comentarios
¿Qué te parece?
Es bueno conocer tu opinión. Deja un comentario.