Usuaris i grups a Linux

Diferències entre adduser i useradd a Linux: quan fer servir cadascuna



Per crear usuaris a Linux tens dues comandes amb noms gairebé idèntics: adduser i useradd. Totes dues creen comptes, però no funcionen igual, i el que fa adduser depèn molt de la distribució. En aquest article t’explico les diferències reals i quan convé fer servir cadascuna.

La diferència clau: depèn de la distribució

  • useradd és l’eina de baix nivell del paquet shadow. És present a totes les distribucions i es comporta de manera semblant a totes: no pregunta res i fa només el que li indiques amb opcions.
  • adduser és diferent segons on siguis: – A Debian, Ubuntu, Raspberry Pi OS i derivades és un programa propi (un script de Perl del paquet adduser), interactiu, que aplica la política de Debian i que per sota acaba cridant useradd. – A RHEL, Rocky, AlmaLinux i Fedora és simplement un enllaç a useradd: adduser joan és exactament el mateix que useradd joan. – A Arch Linux no ve instal·lat de sèrie.

Ho pots comprovar a qualsevol sistema de la família Red Hat:

$ ls -l /usr/sbin/adduser
lrwxrwxrwx 1 root root 7 /usr/sbin/adduser -> useradd

Per tant, la comparació següent té sentit sobretot a Debian i Ubuntu.

Comparació a Debian i Ubuntu

Característicaadduseruseradd
InteraccióInteractiu: pregunta la contrasenya i el nom completNo pregunta res
Directori personalEl crea sempre i hi copia /etc/skelNomés amb -m
Permisos del directori personal700 (configurable a /etc/adduser.conf)Segons HOME_MODE o UMASK de /etc/login.defs
ContrasenyaLa demana en crear l’usuariCap; cal fer passwd després
Shell/bin/bash (variable DSHELL)El de /etc/default/useradd (useradd -D el mostra)
Nom complet (camp GECOS)El pregunta, o --comment "..."-c "..."
Afegir un usuari existent a un grupadduser joan sudoNo; cal usermod -aG sudo joan
Usuaris de sistemaadduser --system, amb valors segurs per defecteuseradd -r (cal indicar shell, directori…)
Configuració/etc/adduser.conf/etc/login.defs i /etc/default/useradd
DisponibilitatDebian i derivadesTotes les distribucions

Exemples equivalents

Crear l’usuari joan amb directori personal, Bash i contrasenya.

Amb adduser (Debian/Ubuntu):

sudo adduser joan

Amb useradd (qualsevol distribució):

sudo useradd -m -s /bin/bash -c "Joan Puig" joan
sudo passwd joan

Crear-lo sense cap pregunta, per a un script:

# adduser (Debian/Ubuntu)
sudo adduser --disabled-password --comment "Joan Puig" joan

# useradd (qualsevol)
sudo useradd -m -s /bin/bash -c "Joan Puig" joan

Donar-li permisos de sudo:

sudo adduser joan sudo         # Debian/Ubuntu
sudo usermod -aG sudo joan     # qualsevol (a RHEL/Fedora, el grup és wheel)

Un error habitual: useradd -p amb la contrasenya en clar

Moltes guies proposen això:

useradd -m -p "contrasenya_segura" joan     # MALAMENT

No funciona com s’espera: -p vol la contrasenya ja xifrada (un hash). Si hi poses el text en clar, es desa tal qual a /etc/shadow i l’usuari no podrà entrar amb aquesta contrasenya. A més, queda visible a l’historial de Bash i a la llista de processos. Fes-ho així:

sudo useradd -m -s /bin/bash joan
echo 'joan:contrasenya_segura' | sudo chpasswd

Quan fer servir cadascuna

adduser, si treballes amb Debian, Ubuntu o derivades i:

  • Crees usuaris a mà, d’un en un.
  • Vols que el sistema apliqui els valors recomanats (directori privat, grup propi, /etc/skel) sense recordar opcions.
  • Has d’afegir un usuari a un grup (adduser usuari grup).

useradd, quan:

  • Escrius scripts que han de funcionar a qualsevol distribució.
  • Necessites controlar cada detall amb opcions.
  • Treballes amb RHEL, Rocky, Fedora o Arch (on és, de fet, l’única opció).

Altres parelles semblants

El paquet adduser de Debian també inclou addgroup, deluser i delgroup, que són les versions «amigables» de groupadd, userdel i groupdel. En tens els detalls a la segona part de la fitxa d’adduser.

Comandes relacionades