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 chage

man passwd

Red Hat Enterprise Linux 4 System Administration Guide - Password Aging

Suse Doc: Security and Hardening Guide - Enabling Password Aging


Tal vez pueda interesarte


Compartí este artículo