Usuaris i grups a Linux

La comanda chage a Linux: caducitat de contrasenyes i comptes



La comanda chage (change age) gestiona la caducitat de les contrasenyes i dels comptes: cada quants dies s’ha de canviar la contrasenya, quants dies d’avís es donen, quan es desactiva un compte… Tota aquesta informació es guarda a /etc/shadow. Només root pot fer canvis; qualsevol usuari pot consultar les seves dades amb chage -l.

Sintaxi

sudo chage [opcions] usuari

Opcions

OpcióQuè fa
-lMostra la informació de caducitat de l’usuari
-M diesDies màxims que dura una contrasenya
-m diesDies mínims entre dos canvis de contrasenya
-W diesDies d’avís abans que caduqui la contrasenya
-I diesDies de gràcia després que caduqui la contrasenya; passat aquest temps, el compte queda bloquejat
-E dataData de caducitat del compte (AAAA-MM-DD); -1 la treu
-d dataData de l’últim canvi de contrasenya; 0 obliga a canviar-la al pròxim inici de sessió
-iAmb -l, mostra les dates en format AAAA-MM-DD

Consultar la informació d’un usuari

$ chage -l joan
Last password change					: Oct 03, 2026
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	: 7

chage -l sempre necessita un nom d’usuari: no hi ha cap manera de llistar tots els comptes d’una vegada. Si vols una visió general, fes servir sudo passwd -a -S, o recorre els usuaris en un bucle:

for u in $(getent passwd | awk -F: '$3 >= 1000 && $3 < 60000 {print $1}'); do
    echo "== $u"; sudo chage -l "$u" | grep -E 'Password expires|Account expires'
done

Exemples

Contrasenyes que caduquen cada 90 dies, amb avís 14 dies abans i un mínim d’un dia entre canvis:

$ sudo chage -M 90 -m 1 -W 14 joan
$ chage -l joan
Last password change					: Oct 03, 2026
Password expires					: Jan 01, 2027
Password inactive					: never
Account expires						: never
Minimum number of days between password change		: 1
Maximum number of days between password change		: 90
Number of days of warning before password expires	: 14

Obligar l’usuari a canviar la contrasenya el pròxim cop que entri:

$ sudo chage -d 0 joan
$ chage -l joan | head -3
Last password change					: password must be changed
Password expires					: password must be changed
Password inactive					: password must be changed

Un compte temporal que deixa de funcionar a final d’any:

sudo chage -E 2026-12-31 becari

O d’aquí a 180 dies:

sudo chage -E $(date -d +180days +%F) becari

Desactivar un compte ara mateix (data de caducitat en el passat):

sudo chage -E 0 joan

I tornar-lo a activar:

sudo chage -E -1 joan

Bloquejar el compte si la contrasenya fa 30 dies que ha caducat i no l’ha canviada:

sudo chage -I 30 joan

Mode interactiu

Si no poses cap opció, chage et pregunta tots els valors un per un. Prem Retorn per deixar el valor actual, que surt entre claudàtors:

$ sudo chage joan
Changing the aging information for joan
Enter the new value, or press ENTER for the default

	Minimum Password Age [0]:
	Maximum Password Age [99999]: 90
	Last Password Change (YYYY-MM-DD) [2026-10-03]:
	Password Expiration Warning [7]:
	Password Inactive [-1]:
	Account Expiration Date (YYYY-MM-DD) [-1]:

Caducitat de la contrasenya o del compte?

És la confusió més habitual:

  • Contrasenya caducada (-M): l’usuari pot entrar, però el sistema l’obliga a canviar-la abans de continuar.
  • Compte caducat (-E): l’usuari ja no pot entrar de cap manera, ni tan sols amb una clau SSH, fins que un administrador ho canviï.

Valors per defecte per als usuaris nous

Els valors que s’apliquen en crear un usuari es defineixen a /etc/login.defs:

PASS_MAX_DAYS	99999
PASS_MIN_DAYS	0
PASS_WARN_AGE	7

Canviar aquests valors no afecta els usuaris que ja existeixen: a aquests, els has d’aplicar chage un per un.

Una nota: les recomanacions actuals (per exemple, les del NIST) ja no aconsellen obligar a canviar la contrasenya periòdicament si no hi ha sospita que s’hagi filtrat, perquè porta els usuaris a triar contrasenyes més febles. Fes-ho servir si una normativa t’hi obliga o per a comptes temporals.

Comandes relacionades

  • passwd: canviar contrasenyes; també té -x, -n, -w i -i.
  • usermod: -e per a la caducitat del compte i -L per bloquejar-lo.
  • useradd: -e per crear un compte que ja tingui data de caducitat.
  • pwck: comprovar que /etc/shadow és coherent.
  • Usuaris i grups a Linux