La comanda passwd serveix per canviar contrasenyes: la teva o, si ets administrador, la de qualsevol usuari. També permet bloquejar comptes, obligar a canviar la contrasenya i consultar-ne l’estat. Les contrasenyes no es guarden mai en clar: el que es desa a /etc/shadow és un hash (a Debian 13, amb l’algorisme yescrypt).
Sintaxi
passwd [opcions] [usuari]
Sense usuari, actua sobre el teu compte. Per canviar la d’un altre usuari o fer servir la majoria d’opcions, cal sudo.
Opcions més útils
| Opció | Què fa |
|---|---|
-S | Mostra l’estat de la contrasenya |
-a -S | Mostra l’estat de tots els comptes |
-l | Bloqueja la contrasenya del compte |
-u | La desbloqueja |
-e | La fa caducar: l’usuari l’haurà de canviar quan entri |
-d | Esborra la contrasenya (compte sense contrasenya; perillós) |
-n dies | Dies mínims entre canvis de contrasenya |
-x dies | Dies màxims que dura una contrasenya |
-w dies | Dies d’avís abans que caduqui |
-i dies | Dies que el compte continua actiu després que caduqui la contrasenya |
-s | Llegeix la contrasenya nova de l’entrada estàndard |
Exemples
Canviar la teva contrasenya
$ passwd
Changing password for joan
Current password:
New password:
Retype new password:
passwd: password updated successfully
No es veu res mentre escrius: és normal.
Canviar la d’un altre usuari
$ sudo passwd maria
New password:
Retype new password:
passwd: password updated successfully
Com a administrador no cal saber la contrasenya antiga. És el que fas quan algú l’ha oblidada.
Obligar a canviar-la al pròxim inici de sessió
sudo passwd -e maria
Molt útil després de donar a algú una contrasenya provisional.
Consultar l’estat
$ sudo passwd -S joan
joan P 2026-06-18 0 99999 7 -1
Els camps són: usuari, estat (P = té contrasenya utilitzable, L = bloquejada, NP = sense contrasenya), data de l’últim canvi, dies mínims, dies màxims, dies d’avís i dies d’inactivitat (-1 = desactivat).
Bloquejar i desbloquejar
sudo passwd -l joan
sudo passwd -u joan
-l posa un ! davant del hash a /etc/shadow. Compte: això només impedeix entrar amb contrasenya. Si l’usuari té una clau SSH configurada, encara pot entrar. Per desactivar el compte del tot, fes-lo caducar:
sudo usermod -L -e 1 joan
Política de caducitat
# La contrasenya dura 90 dies, avís 14 dies abans, i no es pot canviar més d'un cop al dia
sudo passwd -x 90 -w 14 -n 1 joan
Aquests valors es guarden a /etc/shadow i els pots veure amb chage -l joan. Per a la caducitat del compte sencer (no de la contrasenya), fes servir chage -E.
Canviar contrasenyes des d’un script
echo 'joan:UnaContrasenyaLlarga' | sudo chpasswd
chpasswd llegeix parells usuari:contrasenya (un per línia) i és la manera recomanada de fer-ho en lot. Tingues en compte que la contrasenya pot quedar a l’historial de Bash: és millor llegir-la d’un fitxer protegit.
Compte amb…
-ni-xno posen una «data de caducitat del compte», com es diu sovint:-nés el mínim de dies entre canvis i-xel màxim de dies que dura la contrasenya.passwd -ddeixa el compte sense contrasenya. Segons la configuració de PAM i SSH, podria permetre entrar sense contrasenya. Evita-ho.- Contrasenyes llargues millor que complicades: una frase de quatre o cinc paraules és més segura i més fàcil de recordar que
P@ssw0rd!. - Requisits de complexitat: els aplica PAM (per exemple, el mòdul
pam_pwquality), nopasswdmateix. Si et rebutja una contrasenya, és per la política del sistema.
Fitxers implicats
| Fitxer | Contingut |
|---|---|
/etc/passwd | Dades dels usuaris; al camp de contrasenya només hi ha una x |
/etc/shadow | Hash de la contrasenya i dades de caducitat (només root) |
/etc/login.defs | Valors per defecte (PASS_MAX_DAYS, PASS_WARN_AGE, ENCRYPT_METHOD…) |