Este artículo fue publicado originalmente en go2linux.org el 4 de octubre de 2008. El dominio ya no me pertenece, pero soy el autor original. Lo republico aquí en garron.me con correcciones y mejoras.
Introducción
chage (change age) gestiona la información de envejecimiento de contraseñas para las cuentas de usuario. Como administrador del sistema, puedes usarlo para imponer políticas de rotación de contraseñas, bloquear cuentas tras inactividad y obligar a los usuarios a cambiar su contraseña en el próximo inicio de sesión.
Ver la información actual de caducidad
sudo chage --list usuario
Ejemplo de salida:
Last password change : May 10, 2024
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between changes : 0
Maximum number of days between changes : 99999
Number of days of warning before expiry : 7
Establecer una antigüedad máxima de contraseña
Forzar un cambio de contraseña después de 30 días:
sudo chage -M 30 usuario
Tras el siguiente --list, la fecha de caducidad será 30 días desde el último cambio:
Password expires : Jun 09, 2024
Maximum number of days between changes : 30
Cuando el usuario inicia sesión tras la expiración, el sistema le obliga a elegir una nueva contraseña de inmediato.
Forzar un cambio inmediato de contraseña
Establece la fecha del último cambio de contraseña al origen (día 0), lo que hace que la contraseña ya haya expirado:
sudo chage -d 0 usuario
La próxima vez que el usuario inicie sesión deberá cambiar su contraseña antes de poder continuar. Este es el método estándar para forzar el cambio en una cuenta nueva.
Un atajo equivalente con passwd:
sudo passwd -e usuario
Establecer un período de aviso
Avisar al usuario con antelación antes de que caduque su contraseña. Aquí, avisar 7 días antes:
sudo chage -W 7 usuario
Un período de aviso de al menos 3–7 días es buena práctica — da tiempo al usuario para elegir una contraseña segura en lugar de escribir lo primero que vea.
Establecer un mínimo de días entre cambios
Evitar que los usuarios cambien inmediatamente a su contraseña anterior:
sudo chage -m 5 usuario
Esto requiere al menos 5 días entre cambios de contraseña.
Establecer una fecha de expiración de cuenta
Bloquear una cuenta en una fecha específica (útil para cuentas temporales o de contratistas):
sudo chage -E 2024-12-31 usuario
Para eliminar la fecha de expiración:
sudo chage -E -1 usuario
Modo interactivo
Ejecutar chage sin flags abre un prompt interactivo que recorre todos los ajustes:
sudo chage usuario
Referencia rápida
| Flag | Significado |
|---|---|
| -l / --list | Muestra la información actual de envejecimiento |
| -M días | Días máximos antes de que deba cambiar la contraseña |
| -m días | Días mínimos entre cambios |
| -W días | Días de aviso antes de la expiración |
| -d fecha | Fecha del último cambio (0 = forzar cambio ahora) |
| -E fecha | Fecha de expiración de la cuenta (AAAA-MM-DD, o -1 para eliminar) |
| -I días | Días de inactividad tras la expiración antes de bloquear la cuenta |