Introducción al control de vigencia de cuentas
La gestión de directivas sobre la vida útil de las credenciales y el bloqueo programado de cuentas representan un pilar básico en el endurecimiento (hardening) de servidores GNU/Linux. Mediante la utilidad chage, los administradores de sistemas pueden auditar y restringir con gran precisión el ciclo de rotación de claves. En este laboratorio configuraremos un usuario de pruebas para examinar el estado de expiración, definir períodos de renovación obligatoria y forzar la actualización de contraseñas en el primer inicio de sesión.
1. Provisión de un usuario de pruebas y auditoría inicial con chage -l
Para garantizar un entorno seguro y aislado durante la práctica, procedemos a dar de alta la cuenta testuser en caso de que no exista previamente en el sistema.

A continuación, establecemos una clave provisional para el usuario recién creado recurriendo al comando chpasswd.

La herramienta chage está diseñada para inspeccionar y gobernar el envejecimiento (aging) de credenciales y la vigencia temporal de cualquier cuenta local.
Ejecutando la opción -l, es posible desplegar un reporte exhaustivo con las directivas activas y fechas de caducidad asignadas a testuser.
⚙️ [Parámetros esenciales]
-l : Despliega la configuración actual de vigencia y envejecimiento de la contraseña.-m : Fija el intervalo mínimo de días que deben transcurrir antes de poder modificar la clave nuevamente.-M : Determina el plazo máximo en días de validez operativa para la contraseña.-W : Establece la cantidad de días de preaviso que recibirá el usuario antes de la fecha límite de caducidad.-I : Define el margen de gracia (en días) para bloquear la cuenta tras vencer la contraseña sin haber sido renovada.-E : Asigna una fecha fija e improrrogable en la que la cuenta quedará totalmente inhabilitada.-d : Modifica el registro de la fecha en que se efectuó el último cambio de contraseña.

2. Definición de ventanas de vigencia y alertas de vencimiento (-m, -M, -W)
Configuraremos una directiva sólida asignando a testuser un tiempo mínimo de uso de 7 días (-m 7), un tope máximo de validez de 90 días (-M 90) y una ventana de notificación previa de 14 días (-W 14).
Este esquema mitiga la alternancia inmediata de contraseñas para eludir históricos y asegura una política de rotación periódica indispensable en auditorías de seguridad.

Verificamos la correcta incorporación de estos valores invocando nuevamente el indicador -l.
En la salida estándar se aprecia con claridad que el valor mínimo (7), el límite máximo (90), los días de preaviso (14) y la consecuente fecha de expiración calculada se han sincronizado sin inconsistencias.

3. Restricción por expiración de cuenta y período de gracia (-E, -I)
Para gestionar accesos temporales o de colaboradores externos, programamos la desactivación definitiva de testuser para el 31 de diciembre de 2026 (-E 2026-12-31), otorgando además un margen de tolerancia de 7 días (-I 7) tras el vencimiento de la clave antes de congelar el acceso.
Esta doble capa de control garantiza que las cuentas transitorias queden clausuradas de forma automática al término de su ciclo útil y mitiga el riesgo de cuentas huérfanas desatendidas.

Confirmamos la aplicación efectiva de estos parámetros consultando el perfil del usuario mediante -l.
La salida confirma que tanto la fecha de cierre de la cuenta (Account expires : Dec 31, 2026) como la fecha de bloqueo por inactividad (Password inactive : Jan 21, 2027) coinciden con exactitud según lo planificado.

4. Renovación obligatoria en el primer acceso y limpieza del entorno (-d 0)
Un requerimiento habitual al dar de alta nuevos usuarios consiste en forzar el reemplazo de su contraseña temporal en la primera autenticación; esto se logra reiniciando el contador del último cambio a cero con -d 0.
Con esta técnica anulamos la exposición de claves provisionales asignadas por el administrador y transferimos la custodia de la credencial definitiva directamente al titular de la cuenta.

Inspeccionamos el impacto de este ajuste recurriendo al parámetro -l.
El reporte evidencia que tanto el registro de modificación (Last password change) como el estado de expiración (Password expires) reflejan el aviso password must be changed, requiriendo un cambio inmediato al momento de iniciar sesión.

Concluidas las comprobaciones, saneamos el sistema eliminando de raíz la cuenta testuser junto con su directorio de trabajo personal mediante userdel -r.

A lo largo de este laboratorio hemos explorado cómo el comando chage permite estructurar políticas de caducidad y ciclos de vida de credenciales de manera eficiente y centralizada en Linux.
Implementar estos lineamientos en sus entornos de producción fortalecerá sustancialmente la postura de seguridad frente a accesos no autorizados.