Usuaris i grups a Linux

La comanda passwd a Linux: canviar contrasenyes i bloquejar comptes



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
-SMostra l’estat de la contrasenya
-a -SMostra l’estat de tots els comptes
-lBloqueja la contrasenya del compte
-uLa desbloqueja
-eLa fa caducar: l’usuari l’haurà de canviar quan entri
-dEsborra la contrasenya (compte sense contrasenya; perillós)
-n diesDies mínims entre canvis de contrasenya
-x diesDies màxims que dura una contrasenya
-w diesDies d’avís abans que caduqui
-i diesDies que el compte continua actiu després que caduqui la contrasenya
-sLlegeix 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…

  • -n i -x no posen una «data de caducitat del compte», com es diu sovint: -n és el mínim de dies entre canvis i -x el màxim de dies que dura la contrasenya.
  • passwd -d deixa 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), no passwd mateix. Si et rebutja una contrasenya, és per la política del sistema.

Fitxers implicats

FitxerContingut
/etc/passwdDades dels usuaris; al camp de contrasenya només hi ha una x
/etc/shadowHash de la contrasenya i dades de caducitat (només root)
/etc/login.defsValors per defecte (PASS_MAX_DAYS, PASS_WARN_AGE, ENCRYPT_METHOD…)

Comandes relacionades