Hoy tuve la necesidad de verificar y modificar la fecha de expiración de la contraseña de un usuario GNU/Linux. Para ello existe la herramienta chage
.
La herramienta chage
modifica el número de días entre cambios de contraseña y la fecha del último cambio de contraseña. Esta información es utilizada por el sistema para determinar cuando un usuario debe cambiar su contraseña.
Para verificar cuándo ha cambiado por última vez su contraseña un usuario, y cuantos días entre cambios de contraseña tiene configurada la cuenta, se puede utilizar chage
con la opción -l
. Por ejemplo:
[root@centos6 ~]# chage -l fulanito Last password change : Feb 20, 2015 Password expires : never Password inactive : never Account expires : never Minimum number of days between password change : 0 Maximum number of days between password change : 99999 Number of days of warning before password expires : 15
El usuario "fulanito" ha cambiado por última vez su contraseña el día 20 de febrero de 2015, y la misma expira dentro de 99999 días a partir de tal fecha. A fines prácticos significa que la contraseña no expira, la expiración para dicha contraseña está desactivada. Notar que el campo Password expires figura como "never" (nunca, en inglés).
Otra forma de obtener la misma información (aunque en un formato más sintético) es utilizando la herramienta passwd
con la opción -S
:
[root@centos6 ~]# passwd -S fulanito fulanito PS 2015-02-19 0 99999 15 30
Por razones de seguridad, es altamente recomendable habilitar la expiración (o envejecimiento) de contraseñas para cuentas de usuario (no así para cuentas de servicios, o cuentas de sistema). De esta forma se fuerza a los usuarios a cambiar su contraseña periódicamente.
Por ejemplo, para que el usuario "fulanito" deba cambiar su contraseña cada 90 días, ejecutar el siguiente comando:
[root@centos6 ~]# chage -M 90 fulanito
Ahora se observa que la contraseña de "fulanito" expirará el 21 de mayo de 2015 (90 días más tarde):
[root@centos6 ~]# chage -l fulanito Last password change : Feb 20, 2015 Password expires : May 21, 2015 Password inactive : Jun 20, 2015 Account expires : never Minimum number of days between password change : 0 Maximum number of days between password change : 90 Number of days of warning before password expires : 15
Además, el sistema notificará al usuario con 15 días de anticipación para que realice el cambio, y el número de días mínimo entre cambios de contraseñas es cero (es decir, el usuario puede cambiar su contraseña todas las veces que desee, no necesita dejar que pase una cantidad de tiempo específica antes de poder cambiarla nuevamente). Estos parámetros se configuran utilizando la misma herramienta, con las opciones -m
y -W
(ver el manual de chage
).
Referencias
man passwd
man passwd
Red Hat Enterprise Linux 4 System Administration Guide - Password Aging
Suse Doc: Security and Hardening Guide - Enabling Password Aging
Fuente: linuxito