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,grup2 | Afegeix l’usuari a grups secundaris, sense treure’l dels que ja té |
-G grup1,grup2 | Substitueix la llista de grups secundaris (sense -a, el treu de la resta) |
-r -G grup | Treu l’usuari dels grups indicats (versions recents, com Debian 13 o Fedora; no existeix a RHEL 9) |
-g grup | Canvia el grup primari |
-s shell | Canvia el shell d’inici |
-d dir | Canvia el directori personal (només el camp de /etc/passwd) |
-d dir -m | Canvia el directori personal i hi mou el contingut |
-l nou_nom | Canvia el nom d’usuari |
-c "text" | Canvia el comentari (nom complet) |
-u UID | Canvia l’UID |
-e AAAA-MM-DD | Data de caducitat del compte (-e "" la treu) |
-L / -U | Bloqueja / 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:
usermodcomprova si té processos en marxa i s’hi pot negar. - Fes una còpia de
/etc/passwd,/etc/shadowi/etc/groupabans de canvis delicats. - Verifica el resultat amb
id joan,groups joanogetent passwd joan.
Comandes relacionades
usermod -c … -g … -d … -s …: un exemple complet comentat.usermod -aG: afegir un usuari a diversos grups.useradd: crear usuaris.passwdichage: contrasenyes i caducitat.groupmod: canviar el nom o el GID d’un grup.chown: canviar el propietari de fitxers.