Quando si usa Linux, è essenziale sapere come gestire utenti e gruppi per poter garantire i permessi corretti a tutti gli utenti che creiamo ed evitare anche problemi di sicurezza.
In questa guida vedremo quali sono i comandi più utili che ci aiutano a creare nuovi utenti e gruppi e a gestire quelli già creati (con modifiche, eliminazioni e assegnazioni degli utenti ai gruppi).
Iniziamo!
Table of Contents
Cosa sono utenti e gruppi in Linux
Prima di andare a vedere quali sono i principali comandi per la gestione di utenti è gruppi, è meglio chiarire qual è lo scopo di queste due entità.
I sistemi operativi Linux utilizzano utenti e gruppi per gestire i permessi di accesso (ed esecuzione dei file).
Come probabilmente già saprai su Linux ogni cosa è intesa come file e ogni file ha a sua volta un utente e un gruppo.
Alla base del funzionamento di Linux ci sono i tre permessi: lettura, scrittura ed esecuzione. Inoltre i permessi si applicano a tre livelli:
- utente che possiede il file;
- gruppo dell’utente che possiede il file;
- tutti gli altri utenti.
Per approfondire meglio l’argomento puoi leggere la guida al comando chown che permette di cambiare la proprietà dei file e quella al comando chmod per gestire i permessi.
Come vengono memorizzate le informazioni su utenti e gruppi su Linux?
È utile sapere che i sistemi Linux utilizzano dei file appositi per memorizzare le informazioni di utenti e gruppi.
/etc/passwd: in questo file sono memorizzate le informazioni sugli utenti (tra queste ci sono nome utente, id e percorso della directory home)./etc/group: contiene i gruppi e l’associazione tra gruppi e utenti./etc/shadow: contiene informazioni sicure degli utenti (ad esempio le password)./etc/gshadow: contiene informazioni sicure dei gruppi utenti (ad esempio le password).
Comandi per la gestione degli utenti
Tieni presente che i comandi per creare e modificare gli utenti richiedono permessi sudo o root.
In questa sezione ti mostrerò come:
- creare un nuovo utente
- modificare un utente già esistente
- eliminare un utente
- visualizzare tutto l’elenco di utenti su Linux
- sapere quali utenti hanno effettuato l’accesso e sono ancora loggati.
Nella sezione successiva, invece, parleremo in modo approfondito dei gruppi.
Come creare un utente
Per creare un nuovo utente su Linux possiamo usare il comando useradd.
Questo comando usato da solo e senza opzioni, crea semplicemente un nuovo utente senza password e senza home associata.
L’utilizzo del comando è abbastanza semplice.
La sintassi di useradd è questa:
useradd [nome-utente]
In pratica basta indicare il nome dell’utente dopo il comando useradd, nel nostro esempio:
useradd mariag

Se esiste già un utente con questo nome, verremo avvisati da un avviso come quello che ho riportato qui sotto.

Se vogliamo che venga creata la directory HOME_DIR per quell’utente, dobbiamo anche aggiungere l’opzione -m; il comando sarà quindi così:
useradd -m [nome-utente]
In questo esempio è mostrata l’effettiva creazione della home directory dell’utente che si trova in “/home/nome_utente“.
A questo punto per impostare una password per l’utente appena creato possiamo usare il comando passwd:
passwd [nome-utente]
Il terminale ci mostrerà due prompt richiedendo di specificare la nuova password e di inserirla una seconda volta.

Useradd o adduser?
A volte capita che ci siano più comandi Linux per eseguire la stessa operazione.
Per esempio, per le distribuzioni Debian e derivate è possibile utilizzare il comando adduser invece che useradd. I due comandi hanno lo stesso scopo: creare un nuovo utente.
Come abbiamo visto, però, il comando useradd usato senza opzioni crea semplicemente l’utente e saremo poi noi a dover usare le opzioni corrette e altri comandi per completare il processo, ad esempio specificando una password per quell’utente.
Il comando adduser, invece, ci permette la creazione dell’utente in maniera più guidata con dei prompt che ci invitano a creare la home directory e inserire altre informazioni opzionali come il nome completo dell’utente.
Ti mostro brevemente come si usa.
Per cominciare usa il comando così:
adduser [nome-utente]
Il sistema va ad eseguire questi passaggi in autonomia:
- associare un ID univoco all’utente;
- creare un nuovo gruppo con lo stesso nome dell’utente;
- aggiungere il nuovo utente al nuovo gruppo;
- creare la home directory dell’utente.
Ti viene quindi chiesto con un prompt di inserire la password e confermarla (inserendola quindi una seconda volta).
A questo punto puoi inserire le informazioni opzionali: nome completo, stanza n°, ecc. Per lasciarle vuote dai semplicemente “Invio” senza scrivere nulla.
Alla fine puoi confermare digitando “S“.

Come modificare un utente
Il comando usermod su Linux ci permette di modificare gli utenti esistenti. Con questo comando possiamo modificare l’username degli utenti, la directory home e le informazioni opzionali.
Vediamo diversi esempi.
Per cambiare l’username di un utente e passare ad esempio da “mary” a “mary2”, usiamo il comando usermod con l’opzione -l (–login).
usermod -l [nuovo-nome] [nome-corrente]
Nel nostro esempio, il comando sarà questo:
usermod -l mary2 mary
Per modificare la directory home di un utente, per esempio per cambiare il nome della directory da “/home/mary” a “/home/mary2” possiamo usare l’opzione -d (–home):
usermod -d [nuovo-percorso-home-directory] [utente]
Nel nostro esempio:
usermod -d /home/mary2 mary2
Come si cambia la password di utente Linux già creato?
Per cambiare la password di un utente Linux già esistente, possiamo usare il comando passwd come abbiamo visto negli esempi precedenti.
La sintassi è questa:
passwd [nome-utente]
Per esempio per cambiare la password dell’utente “mary” uso il comando in questo modo:
passwd mary
Un prompt richiederà di inserire due volte la nuova password, come è mostrato nella schermata di esempio qui sotto.

Come eliminare un utente
Il comando che ci permette di eliminare un utente è userdel.
Questo comando può essere usato senza opzioni se vogliamo solo eliminare l’utente, ma se il nostro obiettivo è rimuovere tutto e quindi eliminare anche la directory home e eventuali email, possiamo farlo con l’opzione -r.
L’uso del comando senza opzioni ha questa sintassi:
userdel [nome-utente]
Usando il comando qui sopra stiamo eliminando solo l’utente.
Se, invece, vogliamo eliminare anche mail e directory home dell’utente, usiamo il comando con l’opzione -r:
userdel -r [nome-utente]

Se l’utente che stiamo cercando di rimuovere è attualmente collegato, riceveremo un errore, in questo caso per procedere forzando l’eliminazione basta usare l’opzione -f, così:
userdel -f [nome-utente]
Ottenere la lista degli utenti
Su Linux tutte le informazioni sugli account creati, compresi gli ID degli utenti e le rispettive directory home si trovano nel file /etc/passwd.
Per leggere il file direttamente da terminale possiamo usare il comando cat in questo modo:
cat /etc/passwd
Il file contiene una serie di righe simili a questa:
mary2:x:1006:1006:Maria Grazia,,,:/home/mary2:/bin/bash
Capiamo meglio come leggere questa riga per ricavare le informazioni che ci servono, tieni presente che ogni dato è separato dall’altro dal simbolo dei due punti (:).
- In questa posizione viene indicato il nome utente. Nel nostro esempio “mary2“.
- Questa posizione indica la password. Tipicamente troveremo una “x” che indica che la password è memorizzata in modo criptato. Le password vengono salvate nel file
/etc/shadowfile. - Questo è l’ID dell’utente. Nell’esempio 1006.
- L’ID del gruppo. Nell’esempio 1006.
- Le informazioni opzionali dell’utente, per esempio nome completo, stanza, numero di telefono. Nell’esempio “Maria Grazia” indica il nome completo, mentre le virgole indicano che gli altri campi non sono stati compilati.
- Il percorso della directory home di quell’utente. Nell’esempio /home/mary2.
- La shell predefinita dell’utente. Nell’esempio /bin/bash.
Verificare quali utenti sono loggati
Per conoscere gli utenti che sono connessi attualmente al sistema, si può usare il comando who.
Basta dare il comando senza opzioni, così:
who
Otterremo una lista degli utenti attualmente connessi. Ogni riga sarà simile a questa:
vbox tty2 2025-10-27 11:24
vboxindica l’username dell’utente collegato;tty2indica il tipo di terminale;2025-10-27 11:24è la data di accesso.
Oltre a queste informazioni ci può essere un’ulteriore colonna alla fine che indica l’IP.
Altri comandi che si possono usare sono:
users: questo comando restituisce solo la lista degli username degli utenti loggati (senza altre informazioni);last: il comando last mostra anche gli utenti che hanno effettuato logout e permette quindi di avere una panoramica degli ultimi accessi.
Comandi per la gestione dei gruppi
Ora che sappiamo effettuare le operazioni di base sugli utenti, possiamo passare ai gruppi.
In questo capitolo vedremo come:
- creare un gruppo
- modificare un gruppo esistente
- eliminare un gruppo
- aggiungere o rimuovere utenti da uno specifico gruppo
- sapere tutti i gruppi di appartenenza di un utente
- avere la lista di tutti i gruppi
- sapere quali utenti appartengono a un gruppo.
Come creare un gruppo
Per creare un nuovo gruppo su Linux ci basta usare il comando groupadd. La sintassi è questa:
groupadd [nome-gruppo]
Per esempio:
groupadd shteam
Il comando qui sopra creerà un nuovo gruppo chiamato “shteam”.

Come modificare un gruppo
Se dopo aver creato un gruppo vogliamo modificarlo, è possibile farlo usando il comando apposito groupmod.
Per esempio la modifica più comune è quella di cambiare il nome del gruppo. In tal caso, ci serve l’opzione -n e la sintassi che si usa è questa:
groupmod -n [nuovo-nome-gruppo] [nome-corrente-gruppo]
Facciamo un esempio: voglio rinominare il gruppo “shteam” in “supporthostteam”, per farlo uso il comando:
groupmod -n supporthostteam shteam
Se vogliamo verificare che il comando abbia funzionato, possiamo ottenere la lista dei gruppi usando il comando:
cat /etc/group
Nell’esempio qui sotto è mostrato il gruppo prima (a sinistra) e dopo la modifica del nome (a destra).
Come eliminare un gruppo
Per eliminare un gruppo possiamo usare il comando groupdel.
La sintassi è questa:
groupdel [nome-gruppo]
Per esempio:
groupdel supporthostteam
Tieni presente che quando elimini un gruppo, gli utenti che fanno parte di quel gruppo non vengono eliminati. Per eliminarli puoi seguire la procedura che abbiamo visto prima quando abbiamo parlato di come eliminare gli utenti.
Come aggiungere o rimuovere utenti da un gruppo
Ad ogni gruppo possono essere associati uno o più utenti. Possiamo ovviamente anche gestire queste associazioni scegliendo di aggiungere o rimuovere nuovi utenti da un gruppo.
Aggiungere un utente a un gruppo
Per l’aggiunta utilizzeremo il comando usermod (che abbiamo visto prima, ma solo per quanto riguarda la modifica di altri parametri degli utenti).
Per aggiungere un utente a un gruppo dobbiamo usare questo comando con le opzioni -a (–append) e -G (–groups):
usermod -aG [gruppo] [utente]
Per esempio per aggiungere l’utente “maria” al gruppo “supporthost” userò il comando in questo modo:
usermod -aG supporthost maria
Aggiungere un utente a un gruppo
Per rimuovere un utente da un gruppo è possibile usare il comando deluser.
Il comando si usa in questo modo:
deluser [utente] [gruppo]
Ad esempio se voglio rimuovere l’utente “prova” dal gruppo “supporthost”, mi basta dare questo comando:
deluser prova supporthost
Verificare a quali gruppi appartiene un utente
Se vogliamo conoscere i gruppi a cui appartiene un determinato utente, possiamo usare il comando id.
Ci basta usare il comando id seguito dal nome dell’utente:
id [nome-utente]
Il risultato sarà simile a questo:
uid=1001(maria) gid=1001(maria) gruppi=1001(maria),100(users),1003(supporthost)
Ci viene indicato l’id dell’utente (uid), l’id del gruppo (gid) e poi gli altri gruppi di appartenenza, nel nostro esempio: maria, users e supporthost.

Ottenere la lista dei gruppi
Su Linux i gruppi vengono memorizzati nel file /etc/group. Uno dei modi per visualizzare questo file è usare il comando cat per leggere il file direttamente da terminale.
Per avere una lista di tutti i gruppi nel nostro sistema, quindi possiamo usare il comando:
cat /etc/group
Il risultato sarà una serie di righe come questa:
supporthost:x:1003:maria
- Il primo elemento, nell’esempio supporthost, è il nome del gruppo.
- Il secondo elemento, la x, indica la password (vuol dire che la password è criptata).
- Al terzo posto troviamo l’id del gruppo, nell’esempio 1003.
- Alla fine troviamo la lista degli utenti che sono membri del gruppo. Nel nostro esempio ce ne è uno solo, ma se fossero stati più di uno sarebbero stati separati da virgole.
In alternativa possiamo anche usare il comando getent, in questo modo:
getent group
Otterremo la lista di tutti i gruppi.
Come avere l’elenco dei membri di un determinato gruppo
I comandi che abbiamo visto prima ci permettono di elencare tutti i gruppi nel nostro sistema. Ma se invece stiamo cercando solo gli utenti che appartengono a un determinato gruppo?
In questo caso uno dei comandi che possiamo usare è il comando grep.
Si usa così:
grep 'nome-gruppo' /etc/group
Ci basterà mettere tra apici il nome del gruppo di cui vogliamo conoscere gli utenti membri. Per esempio:
grep 'vbox' /etc/group
Il comando qui sopra ci darà al lista di tutti i membri del gruppo vbox.

Conclusioni
Utenti e gruppi sono entità fondamentali nei sistemi operativi Linux. Adesso sai come fare a creare nuovi utenti, vedere quelli attuali e gestirli, ad esempio se vuoi modificare nome utente, password, directory o anche appartenenza ai gruppi.
Conoscevi già questi comandi? Facci sapere nei commenti.
Lascia un commento