Usuaris i grups a Linux

La comanda usermod a Linux: modificar usuaris amb exemples



La comanda usermod modifica un compte d’usuari que ja existeix: el nom, el shell, el directori personal, els grups, l’UID, la data de caducitat… També permet bloquejar-lo i desbloquejar-lo. És la companya de useradd (que crea) i userdel (que esborra), i com elles necessita sudo.

Sintaxi

sudo usermod [opcions] usuari

Opcions més útils

OpcióQuè fa
-aG grup1,grup2Afegeix l’usuari a grups secundaris, sense treure’l dels que ja té
-G grup1,grup2Substitueix la llista de grups secundaris (sense -a, el treu de la resta)
-r -G grupTreu l’usuari dels grups indicats (versions recents, com Debian 13 o Fedora; no existeix a RHEL 9)
-g grupCanvia el grup primari
-s shellCanvia el shell d’inici
-d dirCanvia el directori personal (només el camp de /etc/passwd)
-d dir -mCanvia el directori personal i hi mou el contingut
-l nou_nomCanvia el nom d’usuari
-c "text"Canvia el comentari (nom complet)
-u UIDCanvia l’UID
-e AAAA-MM-DDData de caducitat del compte (-e "" la treu)
-L / -UBloqueja / desbloqueja la contrasenya

Exemples, de més senzill a més avançat

1. Afegir un usuari a un grup

sudo usermod -aG docker joan

És l’ús més habitual. La -a (append) és imprescindible: sense ella, joan quedaria només al grup docker i perdria tots els altres grups secundaris. Ho tens explicat amb detall a usermod -aG.

L’usuari ha de tancar la sessió i tornar a entrar perquè el canvi tingui efecte.

2. Treure’l d’un grup

sudo usermod -r -G docker joan

L’opció -r és relativament nova: si la teva distribució no la té (per exemple, RHEL 9 i derivades), fes servir sudo gpasswd -d joan docker, que funciona a tot arreu.

3. Canviar el shell

sudo usermod -s /bin/bash joan

El shell ha d’existir: si no hi és, usermod t’avisa (missing or non-executable shell). Els shells instal·lats són a /etc/shells. Un usuari pot canviar el seu propi shell sense sudo amb chsh.

4. Canviar el directori personal i moure’n els fitxers

sudo usermod -d /home/joan_nou -m joan

Sense -m, només es canvia la ruta a /etc/passwd i els fitxers es queden on eren.

5. Canviar el nom d’usuari

sudo usermod -l joana joan

Només canvia el nom del compte. El directori personal continua sent /home/joan i el grup primari continua dient-se joan. Si vols canviar-ho tot:

sudo usermod -l joana joan
sudo usermod -d /home/joana -m joana
sudo groupmod -n joana joan

6. Bloquejar i desbloquejar

sudo usermod -L joan    # bloqueja
sudo usermod -U joan    # desbloqueja

-L posa un ! davant del hash de la contrasenya a /etc/shadow, de manera que no es pot entrar amb contrasenya. Però l’usuari encara pot entrar amb una clau SSH. Per desactivar el compte del tot, fes-lo caducar:

sudo usermod -L -e 1 joan

-e 1 posa la data de caducitat al 2 de gener de 1970, és a dir, en el passat. Per reactivar-lo: sudo usermod -U -e "" joan.

7. Canviar el grup primari

sudo usermod -g desenvolupadors joan

No el confonguis amb -G: -g canvia el grup primari (el que tindran els fitxers nous), -G els secundaris.

8. Canviar l’UID

sudo usermod -u 1050 joan

usermod actualitza automàticament el propietari dels fitxers que hi ha dins del directori personal, però no els de fora. Aquests fitxers es quedaran amb l’UID antic i caldrà canviar-los a mà. Si l’UID antic era 1000:

sudo find / -xdev -uid 1000 -exec chown -h joan {} +

Revisa també les tasques de crontab i at de l’usuari, que usermod no toca.

Precaucions

  • L’usuari no ha d’estar connectat quan li canvies el nom, l’UID o el directori personal: usermod comprova si té processos en marxa i s’hi pot negar.
  • Fes una còpia de /etc/passwd, /etc/shadow i /etc/group abans de canvis delicats.
  • Verifica el resultat amb id joan, groups joan o getent passwd joan.

Comandes relacionades