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 |
|---|---|
-l | Mostra la informació de caducitat de l’usuari |
-M dies | Dies màxims que dura una contrasenya |
-m dies | Dies mínims entre dos canvis de contrasenya |
-W dies | Dies d’avís abans que caduqui la contrasenya |
-I dies | Dies de gràcia després que caduqui la contrasenya; passat aquest temps, el compte queda bloquejat |
-E data | Data de caducitat del compte (AAAA-MM-DD); -1 la treu |
-d data | Data de l’últim canvi de contrasenya; 0 obliga a canviar-la al pròxim inici de sessió |
-i | Amb -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,-wi-i.usermod:-eper a la caducitat del compte i-Lper bloquejar-lo.useradd:-eper crear un compte que ja tingui data de caducitat.pwck: comprovar que/etc/shadowés coherent.- Usuaris i grups a Linux