Usuaris i grups a Linux

La comanda adduser a Linux (2): grups, usuaris de sistema i deluser



Aquesta és la segona part de la fitxa d’adduser. A la primera tens com crear un usuari normal i les opcions principals. Aquí veurem els altres usos del paquet adduser de Debian i Ubuntu: afegir usuaris a grups, crear grups i usuaris de sistema, i la seva parella, deluser, per esborrar-los.

Recorda que tot això és específic de Debian i derivades. A RHEL, Rocky, AlmaLinux i Fedora, adduser és un simple enllaç a useradd i aquestes formes no funcionen.

Els cinc modes d’adduser

ComandaQuè fa
adduser usuariCrea un usuari normal (interactiu)
adduser --system usuariCrea un usuari de sistema per a un servei
addgroup grup (o adduser --group grup)Crea un grup
addgroup --system grupCrea un grup de sistema
adduser usuari grupAfegeix un usuari que ja existeix a un grup que ja existeix

addgroup és el mateix programa que adduser (és un enllaç), però en mode «crear grup».

Afegir un usuari a un grup

sudo adduser joan sudo

Amb dos arguments, adduser no crea res: afegeix joan al grup sudo com a grup secundari. És equivalent a sudo usermod -aG sudo joan o sudo gpasswd -a joan sudo. Si l’usuari ja hi és, només en mostra un avís.

Per a diversos grups, repeteix la comanda o fes servir usermod:

sudo usermod -aG dialout,plugdev joan

Com sempre que canvien els grups, el canvi s’aplica a les sessions noves: l’usuari ha de sortir i tornar a entrar.

Crear un grup

sudo addgroup projecte

Tria el primer GID lliure del rang d’usuaris (a partir de 1000). Amb --gid pots fixar-lo:

sudo addgroup --gid 2001 vendes

El grup es crea buit; hi afegeixes membres amb adduser usuari grup.

Usuaris i grups de sistema

Els usuaris de sistema són per a serveis i programes, no per a persones. adduser --system ho fa tot de manera segura per defecte:

  • UID del rang de sistema (100-999).
  • Shell /usr/sbin/nologin: no pot iniciar sessió.
  • Sense contrasenya.
  • Directori personal /nonexistent (que no existeix ni es crea), si no n’indiques cap amb --home.
  • Grup primari nogroup, si no demanes un grup propi amb --group.

Exemple: un usuari per a una aplicació que guarda les dades a /var/lib/lamevaapp:

sudo adduser --system --group --home /var/lib/lamevaapp lamevaapp

--group crea un grup de sistema amb el mateix nom i el posa com a primari. Si el directori indicat a --home no existeix, el crea.

Una cosa interessant d’adduser --system: si l’usuari de sistema ja existeix amb aquestes característiques, no dona error. Per això és el que fan servir els paquets de Debian als seus scripts d’instal·lació.

deluser i delgroup: esborrar

La parella d’adduser és deluser (i delgroup), del mateix paquet.

ComandaQuè fa
deluser usuariEsborra l’usuari, però conserva el seu directori personal
deluser --remove-home usuariEsborra l’usuari i el seu directori personal
deluser --remove-all-files usuariEsborra l’usuari i tots els seus fitxers de qualsevol lloc del sistema
deluser --backup --remove-home usuariFa una còpia comprimida dels fitxers abans d’esborrar-los
deluser usuari grupTreu l’usuari del grup (no l’esborra)
delgroup grupEsborra un grup
delgroup --only-if-empty grupNomés esborra el grup si no té membres

Exemples:

# Treure joan del grup sudo
sudo deluser joan sudo

# Donar de baixa un usuari guardant-ne una còpia
sudo deluser --backup --remove-home maria

La còpia es desa al directori actual, si no n’indiques un altre amb --backup-to.

Compte amb…

  • deluser --remove-all-files recorre tot el sistema buscant fitxers de l’usuari: pot trigar molt i esborrar coses que no esperaves (fitxers seus dins de directoris compartits, per exemple). Fes servir --backup si tens dubtes.
  • Abans d’esborrar un usuari, revisa si té processos en marxa (ps -u maria), tasques al crontab o serveis que depenguin d’ell.
  • No esborris usuaris de sistema que hagi creat un paquet: si desinstal·les el paquet, ja s’encarregarà ell (o els deixarà a propòsit, per no deixar fitxers sense propietari).

Comandes relacionades