Creare utenti in Linux (comando useradd)

Wed 29 September 2021

Ti è mai capitato di dover creare utenti su una distribuzione linux da terminale? Come puoi creare utenti quando sei connesso ad un server in SSH? Non conosci la distribuzione che stai utilizzando e non trovi il tool grafico per gestire gli utenti?

Linux ha tanti comandi per creare utenze direttamente dalla riga di comando, ed in questo articolo vedremo come creare utenti utilizzando il comando useradd.

Molte distribuzioni Linux offrono la possibilità di creare utenti utilizzando strumenti grafici; tuttavia è una buona idea imparare a creare utenti utilizzando la riga di comando per trasferire la propria conoscenza da una distribuzione all'altra, senza dover imparare una nuova interfaccia grafica.

useradd è un comando di basso livello poiché consente di controllare nel minimo dettaglio le caratteristiche dell'utente da creare.

Creazione nuovo utente

La creazione di un nuovo utente, denominato ad esempio test, all'interno del sistema avviene eseguendo il seguente comando:

sudo useradd test

L'esito dell'esecuzione del comando è desumibile dal contenuto del file di configurazione memorizzato in /etc/default/useradd.

Per controllare il contenuto del file, aprirlo con un editor testuale:

sudo vi /etc/default/useradd

ed al suo interno troveremo le configurazioni impostate. Nella seguente immagine sono mostrate le opzioni di default di una distribuzione Linux Manjaro:

GROUP=users
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no

Come si evince dalla precedente configurazione, le opzioni di default stabiliscono quale sia la cartella HOME, i gruppi ai quali l'utente sarà associato, la data di scadenza della password, la shell di default, la cartella che inizializzerà la cartella profile dell'utente.

Da notare che le informazioni e le impostazioni contenute nel file, utilizzate quando si esegue il comando, variano da distribuzione a distribuzione e sono tutte impostate nel file /etc/default/useradd.

Creazione nuovo utente con Home

Fino ad ora abbiamo visto l'esecuzione del comando senza vincolarla con nessuna opzione. Il comando useradd consente di determinare alcune caratteristiche da attribuire all'utente: tra queste c'è l'assegnazione o meno della cartella HOME.

L'attribuzione dipende dal file di configurazione memorizzato in /etc/default/useradd.

Per forzare la creazione della cartella HOME, usa il seguente comando:

sudo useradd -m test

L'esecuzione crea una cartella /home/test per l'utente test.

Creazione Utente Linux con cartella Home

Creazione nuovo utente con Home personalizzata

Se vuoi che un utente abbia una cartella HOME in un percorso diverso rispetto al default, utilizza l'opzione -d:

sudo useradd -m -d /tmp/test test

L'esecuzione crea una cartella HOME nel percorso /tmp/test per l'utente test.

Creazione Utente Linux con cartella Home personalizzata

Cambiamento utente sul terminale

Verifica il tuo nuovo account utente usando il seguente comando:

sudo su - test

Il precedente comando cambia utente sul terminale, eseguendo la login con l'utente test e, assumendo che sia stata creata una cartella HOME, sposta la shell sulla cartella HOME dell'utente.

Cambio Utente in Linux

Creazione utente con data di scadenza

Se nel tuo ufficio hai un collaboratore che lavorerà con te per un tempo stabilito, puoi impostare una data di scadenza al suo account. Allo stesso modo, se hai ospiti a casa, puoi creare un utente con una data di scadenza che coinciderà con la loro data di partenza.

Per impostare una data di scadenza quando crei un utente, usa il seguente comando:

sudo useradd -d /home/test -e 2020-09-01 test

La data di scadenza deve essere specificata nel formato YYYY-MM-DD dove YYYY rappresenta l'anno, MM rappresenta il mese, DD rappresenta il giorno.

Creazione utente assegnato ad un gruppo

Quando un nuovo utente si unisce alla tua azienda, assegna specifici gruppi per garantire l'accesso agli stessi file ed alle stesse cartelle accessibili agli altri membri del gruppo.

Ad esempio, Ennio è uno sviluppatore. Il seguente comando aggiunge ennio al gruppo degli sviluppatori.

sudo useradd -m ennio -G sviluppatori

Creazione utente senza Home

Se il file /etc/login.defs ha l'opzione CREATE_HOME impostata a yes, quando si crea un utente, una nuova cartella HOME è creata.

Per creare un utente, senza creare alcuna cartella HOME, eseguire il seguente comando:

sudo useradd -M test

Impostare un nome completo all'utente

Il processo di creazione di un utente prevede l'associazione di un nome completo all'utente per evitare ambiguità. Supponiamo che una regola aziendale preveda come nome utente mrossi, conviene associare il nome completo Mario Rossi per evitare che ci si confonda con un altro utente Mino Rossi.

Aggiungi un commento quando crei un account utente per consentire di capire quale sia il nome reale dell'utente. Per associare un commento eseguire il seguente comando:

sudo useradd -m mrossi -c "Mario Rossi"

Analizzare il file /etc/passwd

Quando un nuovo utente è creato, i dettagli sono aggiunti al file /etc/passwd. Per vedere i dettagli di un particolare utente, usare il comando grep come segue:

grep test /etc/passwd

Dettagli Utente all'interno del file /etc/passwd

Il file /etc/passwd contiene una serie di informazioni separate dai : per ogni utente. I campi sono i seguenti:

  • Username
  • Password cifrata (non visibile)
  • Id Utente
  • Id dei Gruppi dell'utente
  • Nome Completo
  • Cartella Home
  • Shell

Conclusioni

In questo articolo hai imparato come creare un utente in linux attribuendo o meno diverse proprietà al momento della creazione. Hai imparato inoltre come poter cambiare utente all'interno di una sessione del terminale e come controllare le proprietà degli utenti creati sul sistema.