Veamos como con el comando chage
gestionamos la caducidad de cuentas de usuario y sus contraseñas.
El comando chage
nos permite configurar el vencimiento de la contraseña de un usuario, así como establecer la caducidad de la cuenta de un usuario. El sistema utiliza esta información para determinar cuándo un usuario debe cambiar su contraseña.
- Opciones del comando chage
- Ejemplos
- Establecer el último cambio de contraseña
- Obligar al usuario a cambiar la contraseña en el próximo acceso
- Establecer la fecha de caducidad de la cuenta
- Establecer el número de días entre cambio de contraseña
- Establecer la advertencia de caducidad de contraseña
- Establecer la caducidad por inactividad de la contraseña
- Mostrar información de la cuenta
- Un ejemplo práctico
- Ejecutar chage en modo interactivo
- Un ejemplo completo
- Opciones del comando chage (Volver al índice General)
Las opciones aplicables al comandochage
son:- -d, – -lastday ULTIMO_DIA : Establece el último día que se cambió la contraseña. Se puede establecer asignando a ULTIMO_DIA un número correspondiente al número de días desde el 1 de enero de 1970 hasta el día que se cambió la contraseña o también, asignando a ULTIMO_DIA la fecha expresada en el formato AAAA-MM-DD.
- -E, – -expiredate FECHA_EXP : Establece la fecha de caducidad de la cuenta. Puede establecerce asignando a FECHA_EXP el número de días desde el 1 de enero de 1970 en los que ya no se podrá acceder a la cuenta del usuario o también, asignando a FECHA_EXP la fecha expresada en el formato AAAA-MM-DD. Si asignamos a FECHA_EXP el número -1 deshabilita el vencimiento de la cuenta.
- -h, – -help : Mostrar mensaje de ayuda y termina.
- -I, – -inactive INACTIVO : Establece en INACTIVO el número de días de inactividad para que una cuenta se bloquee después de que expire la contraseña. Si asignamos a INACTIVO el número -1 se deshabilita la inactividad de una cuenta.
- -l, – -list : Muestra información sobre la antigüedad de la cuenta.
- -m, – -mindays DIAS_MIN : Establece en DIAS_MIN el número mínimo de días entre cambios de contraseña. Si se establece en DIAS_MIN un valor de 0, indica que el usuario puede cambiar su contraseña en cualquier momento.
- -M, – -maxdays DIAS_MAX : Establece en DIAS_MAX el número máximo de días durante los cuales una contraseña es válida. Cuando DIAS_MAX más ULTIMO_DIA es menor que el día actual, el usuario deberá cambiar su contraseña antes de poder usar su cuenta. Esta acontecimiento se puede planificar con anticipación mediante el uso de la opción -W, que proporciona al usuario una advertencia anticipada. Si se establece en DIAS_MAX un valor de -1 se eliminará la verificación de la validez de una contraseña.
- -W, – -warndays DIAS_AVISO : Establece el número de días de advertencia antes de que se requiera un cambio de contraseña. La opción DIAS_AVISO es el número de días antes de que expire la contraseña que se advertirá a un usuario que su contraseña está a punto de expirar.
Si no se selecciona ninguna de las opciones,
chage
trabaja de forma interactiva, solicitando al usuario los valores para todos los campos. Para cambiar un valor, se ingresa el nuevo valor, si se deja la línea en blanco, se usará el valor actual que vendrá mostrado entre un par de corchetes[]
.Solo el usuario root tiene privilegios para utilizar el comando
chage
, excepto cuandochage
se ejecuta con la opción-l
. En este caso,chage
puede ser utilizado por un usuario sin privilegios para comprobar cuándo vence su contraseña o cuenta.Sigue este enlace para ver la página man de chage.
- Ejemplos (Volver al índice General)
Para practicar con el comandochage
, primero creemos a un usuario de prueba al que vamos a llamarmortadelo
:$ sudo adduser mortadelo
Una vez creado, comprobamos cuales son los valores por defecto de su cuenta:
1 2 3 4 5 6 7 8
$ sudo chage -l mortadelo Último cambio de contraseña :feb 27, 2021La contraseña caduca : nunca Contraseña inactiva : nunca La cuenta caduca : nunca Número de días mínimo entre cambio de contraseña : 0 Número de días máximo entre cambio de contraseña : 99999 Número de días de aviso antes de que caduque la contraseña : 7
Hecho esto vamos a practicar un poco.
- Establecer el último cambio de contraseña (Volver al índice General)
En este ejemplo vamos a cambiar la fecha del último cambio de contraseña:$ sudo chage -d 2021-01-25 mortadelo
Si volvemos a ejecutar
chage -l
podremos ver los cambios:1 2 3 4 5 6 7 8
$ sudo chage -l mortadelo Último cambio de contraseña :ene 25, 2021La contraseña caduca : nunca Contraseña inactiva : nunca La cuenta caduca : nunca Número de días mínimo entre cambio de contraseña : 0 Número de días máximo entre cambio de contraseña : 99999 Número de días de aviso antes de que caduque la contraseña : 7
En la línea 2 se observa el cambio.
- Obligar al usuario a cambiar la contraseña en el próximo acceso (Volver al índice General)
Asignando un0
como fecha del último cambio de contraseña, obligamos al usuario a cambiar la contraseña en el próximo acceso. Obligamos el vencimiento inmediato de la contraseña con el siguiente comando:$ sudo chage -d 0 mortadelo
En este punto, si volvemos a ejecutar
chage -l
obtendremos el siguiente resultado:1 2 3 4 5 6 7 8
$ sudo chage -l mortadelo Último cambio de contraseña :se debe cambiar la contraseñaLa contraseña caduca : se debe cambiar la contraseñaContraseña inactiva : se debe cambiar la contraseñaLa cuenta caduca : nunca Número de días mínimo entre cambio de contraseña : 0 Número de días máximo entre cambio de contraseña : 99999 Número de días de aviso antes de que caduque la contraseña : 7
Las líneas 2, 3 y 4 ya nos indican que el usuario tiene que cambiar la contraseña.
Si intentamos iniciar sesión con la cuenta del usuario de prueba
mortadelo
, obtendremos el siguiente resultado:1 2 3 4 5 6 7
$ su mortadelo Contraseña: Debe cambiar la contraseña inmediatamente (obligado por el administrador) Cambiando la contraseña de mortadelo. Current password: Nueva contraseña: Vuelva a escribir la nueva contraseña:
En las líneas 2 y 5 tenemos que introducir la antigua contraseña.
La línea 3 nos indica que el usuariomortadelo
está obligado a cambiar la contraseña.
En las líneas 6 y 7 tenemos que introducir la nueva contraseña.Una vez cambiada la contraseña, si volvemos a ejecutar
chage -l
obtendremos el siguiente resultado:1 2 3 4 5 6 7 8
$ sudo chage -l mortadelo Último cambio de contraseña :feb 27, 2021La contraseña caduca : nuncaContraseña inactiva : nuncaLa cuenta caduca : nunca Número de días mínimo entre cambio de contraseña : 0 Número de días máximo entre cambio de contraseña : 99999 Número de días de aviso antes de que caduque la contraseña : 7
- Establecer el último cambio de contraseña (Volver al índice General)
- Establecer la fecha de caducidad de la cuenta (Volver al índice General)
En este ejemplo, vamos a establecer la fecha de expiración de la cuenta del usuariomortadelo
a final de año (31/12/2021):$ sudo chage -E 2021-12-31 mortadelo
Volvemos a ejecutar
chage -l
para ver el cambio:1 2 3 4 5 6 7 8
$ sudo chage -l mortadelo Último cambio de contraseña :feb 27, 2021 La contraseña caduca : nunca Contraseña inactiva : nunca La cuenta caduca : dic 31, 2021Número de días mínimo entre cambio de contraseña : 0 Número de días máximo entre cambio de contraseña : 99999 Número de días de aviso antes de que caduque la contraseña : 7
En la línea 5 se observa que de nunca ha cambiado a dic 31, 2021.
- Establecer el número de días entre cambio de contraseña (Volver al índice General)
En el siguiente ejemplo, vamos a establecer en 45 días el cambio de contraseña. El usuario podrá tener la misma contraseña 45 días, ni más ni menos:$ sudo chage -m 45 -M 45 mortadelo
Ejecutamos de nuevo el comando
chage -l
para ver los cambios:1 2 3 4 5 6 7 8
$ sudo chage -l mortadelo Último cambio de contraseña :feb 27, 2021 La contraseña caduca : abr 13, 2021Contraseña inactiva : nunca La cuenta caduca : dic 31, 2021 Número de días mínimo entre cambio de contraseña : 45Número de días máximo entre cambio de contraseña : 45Número de días de aviso antes de que caduque la contraseña : 7
En la línea 3 vemos que ha cambiado de nunca a abr 13, 2021. La contraseña caduca 45 días después del 27 de febrero de 2021, que fue el último cambio de contraseña.
En la línea 6 vemos que ha cambiado de 0 a 45 el número de días mínimo entre cambios de contraseña.
En la línea 7 vemos que ha cambiado de 99999 a 45 el número de días máximo entre cambios de contraseña. - Establecer la advertencia de caducidad de contraseña (Volver al índice General)
En este ejemplo vamos a avisar al usuario mortadelo durante 10 días antes de que caduque su contraseña:$ sudo chage -W 10 mortadelo
Ejecutamos de nuevo el comando
chage -l
para ver los cambios:1 2 3 4 5 6 7 8
$ sudo chage -l mortadelo Último cambio de contraseña :feb 27, 2021 La contraseña caduca : abr 13, 2021 Contraseña inactiva : nunca La cuenta caduca : dic 31, 2021 Número de días mínimo entre cambio de contraseña : 45 Número de días máximo entre cambio de contraseña : 45 Número de días de aviso antes de que caduque la contraseña : 10
En la línea 8 se observa que ha cambiado de 7 a 10 días.
- Establecer la caducidad por inactividad de la contraseña (Volver al índice General)
Como bien indica la ayuda del comandochage
, con la opción-I
se establece el número de días de inactividad para que una cuenta se bloquee después de que expire la contraseña. En el siguiente ejemplo vamos a establecer la caducidad por inactividad en 90 días:$ sudo chage -I 90 mortadelo
Ejecutamos de nuevo el comando
chage -l
para ver los cambios:1 2 3 4 5 6 7 8
$ sudo chage -l mortadelo Último cambio de contraseña :feb 27, 2021 La contraseña caduca : abr 13, 2021 Contraseña inactiva : jul 12, 2021La cuenta caduca : dic 31, 2021 Número de días mínimo entre cambio de contraseña : 45 Número de días máximo entre cambio de contraseña : 45 Número de días de aviso antes de que caduque la contraseña : 10
En la línea 4 podemos ver que ha cambiado de nunca a jul 12, 2021. Es decir, 90 días despues del 13 de abril de 2021 que es cuando la contraseña caduca.
Si asignamos
-1
se deshabilita la inactividad de una cuenta:$ sudo chage -I -1 mortadelo
Si ejecutamos de nuevo el comando
chage -l
vemos que la caducidad de la contraseña se ha deshabilitado:1 2 3 4 5 6 7 8
$ sudo chage -l mortadelo Último cambio de contraseña :feb 27, 2021 La contraseña caduca : abr 13, 2021 Contraseña inactiva : nuncaLa cuenta caduca : dic 31, 2021 Número de días mínimo entre cambio de contraseña : 45 Número de días máximo entre cambio de contraseña : 45 Número de días de aviso antes de que caduque la contraseña : 10
- Mostrar información de la cuenta (Volver al índice General)
chage -l
es la única orden que puede ejecutar un usuario sin privilegios de root:$ chage -l mortadelo Último cambio de contraseña :feb 27, 2021 La contraseña caduca : abr 13, 2021 Contraseña inactiva : nunca La cuenta caduca : dic 31, 2021 Número de días mínimo entre cambio de contraseña : 45 Número de días máximo entre cambio de contraseña : 45 Número de días de aviso antes de que caduque la contraseña : 10
- Un ejemplo pŕactico (Volver al índice General)
Podríamos cambiar todos los parámetros anteriores con un solo comando. Utilizando al usuario de pruebasmortadelo
, vamos a establecer los siguiente parámetros:- Último cambio de contraseña: 31/01/2021.
- Fecha de caducidad de la cuenta: 30/11/2021.
- Número de días entre cambio de contraseñas: 50 días.
- Advertencia de caducidad de la contraseña: 8 días.
- Caducidad por inactividad de la contraseña: 30 días.
El comando sería el siguiente:$ sudo chage -d 2021-01-31 -E 2021-11-30 -m 50 -M 50 -W 8 -I 30 mortadelo
Si ejecutamos el comando
chage -l
obtendremos el siguiente resultado:1 2 3 4 5 6 7 8
$ sudo chage -l mortadelo Último cambio de contraseña :ene 31, 2021 La contraseña caduca : mar 22, 2021 Contraseña inactiva : abr 21, 2021La cuenta caduca : nov 30, 2021 Número de días mínimo entre cambio de contraseña : 50 Número de días máximo entre cambio de contraseña : 50 Número de días de aviso antes de que caduque la contraseña : 8
- Ejecutar chage en modo interactivo (Volver al índice General)
Si ejecutamoschage
sin opciones seguido del nombre de cuenta de un usuario,chage
empezará a trabajar de forma interactiva. Solicitará los valores para todos los campos.Si queremos cambiar un valor, se ingresa dicho valor, pero si dejamos el campo en blanco, se usará el valor actual de dicho campo que vendrá mostrado entre un par de corchetes
[]
. Veamos un ejemplo:$ sudo chage mortadelo Cambiando la información de la edad para mortadelo Introduzca el nuevo valor, o pulse INTRO para usar el valor predeterminado Duración mínima de la contraseña [45]: Duración máxima de la contraseña [45]: Último cambio de contraseña (AAAA-MM-DD) [2021-02-27]: Aviso de caducidad de la contraseña [10]: Contraseña inactiva [-1]: Fecha de caducidad de la cuenta (AAAA-MM-DD) [2021-12-31]:
Se observa en la salida que los valores actuales de los campos, los valores entre corchetes
[]
, son los que hemos ido configurando en los ejemplos anteriores.
Espero que este artículo os haya sido de utilidad. Si pensáis que podéis colaborar para mejorar este artículo, que hay algo erróneo en él o simplemente deseáis comentarlo, por favor, dejad vuestra opinión más abajo.
Deja una respuesta