Gestione degli utenti Linux da riga di comando
Riepilogo
La guida illustra come amministrare utenti in Linux tramite terminale, partendo dai file di sistema rilevanti (/etc/passwd, /etc/shadow, /etc/group, ecc.) e passando ai comandi fondamentali: visualizzazione degli account (cat, id, groups, getent), creazione con useradd e adduser, gestione password con passwd, modifica degli utenti con usermod (shell, UID, home, scadenze, blocco/sblocco), appartenenze ai gruppi con usermod -aG e gpasswd, rimozione con userdel (-r per cancellare la home) e verifica/terminazione processi attivi. Conclude con il monitoraggio degli accessi tramite log (auth.log, secure) e journalctl per individuare attività sospette.
Come gestire gli utenti da riga di comando in Linux
Gestire gli utenti è una delle attività fondamentali per ogni amministratore Linux. Che tu abbia un solo computer o un parco server, tenere gli account in ordine ti aiuta a mantenere il controllo del sistema. Una corretta gestione degli utenti è anche cruciale per la sicurezza: concedi l’accesso solo a chi ne ha davvero bisogno e solo per il tempo necessario. Privilegi inutili possono esporre dati sensibili o risorse critiche. In questa guida vediamo gli strumenti da riga di comando per creare, modificare e rimuovere account direttamente dal terminale.
File chiave per la gestione degli utenti in Linux
Linux conserva informazioni su utenti e gruppi in alcuni file di sistema. Al loro interno trovi dettagli degli account, password, gruppi e regole di accesso. Conoscerli è utile sia per consultare i dati sia per intervenire in modo mirato.
-
/etc/passwd
Contiene UID, GID, directory home e shell predefinita. È leggibile da tutti, ma modificabile solo da root/sudo. -
/etc/group
Elenca nome del gruppo, GID e membri. Serve a gestire appartenenze e permessi di gruppo. -
/etc/sudoers
Definisce quali utenti/gruppi possono eseguire comandi come root. Va modificato con estrema cautela (preferibilmente con visudo). -
/etc/shadow
Conserva gli hash delle password, date di scadenza e informazioni sull’account. Accessibile solo a root. -
/etc/gshadow
Contiene dati sulle password dei gruppi e scadenze. Accesso riservato a root. -
/etc/skel
Modelli di file (come .bashrc e .profile) copiati nelle home dei nuovi utenti. -
/etc/login.defs
Impostazioni di sicurezza generali: aging delle password, scadenze e policy correlate.
Visualizzare gli utenti esistenti
Uno dei modi più rapidi per vedere gli account presenti su un sistema Linux è leggere il file /etc/passwd, che archivia le informazioni di base di tutti gli utenti:
sudo cat /etc/passwdOgni riga rappresenta un utente.
Puoi ottenere dettagli anche con:
id nomeutente
groups nomeutente
getent passwd nomeutente- id mostra UID, GID e tutti i gruppi di cui l’utente fa parte.
- groups elenca solo i gruppi dell’utente (non mostra UID/GID).
- getent interroga le basi dati del sistema (es. /etc/passwd, LDAP, NSS) per recuperare i dati dell’account.
Nota: sui sistemi moderni gli hash delle password non sono in /etc/passwd ma in /etc/shadow, leggibile solo dall’utente root.
Creare utenti con il comando useradd
useradd è un’utility a basso livello disponibile sulla maggior parte delle distribuzioni. È meno “amichevole” rispetto ad adduser, ma offre controlli granulari e va benissimo in script o automazioni. Per approfondire:
man useradd
useradd --helpPer aggiungere un nuovo utente con directory home:
sudo useradd --create-home nomeutenteSenza l’opzione --create-home, l’account viene creato ma senza directory personale. Per verificare la creazione:
grep nomeutente /etc/passwdPuoi anche impostare direttamente altre opzioni utili, ad esempio:
- --shell /bin/bash per la shell predefinita
- --gid o --groups per i gruppi
- --comment "Nome Cognome" per la descrizione GECOS
Esempio completo:
sudo useradd --create-home --shell /bin/bash --comment "Mario Rossi" marioCreare utenti con il comando adduser
adduser è solitamente uno script Perl che semplifica la creazione degli utenti con una procedura interattiva: ti chiede password, directory home, dati opzionali, ecc. Su alcune distro (es. Red Hat/CentOS) adduser è un link simbolico a useradd; su altre (es. Arch) può essere disponibile come pacchetto separato.
Per impostazione predefinita, adduser crea anche un gruppo con lo stesso nome dell’utente. Le opzioni predefinite di useradd possono essere definite in /etc/default/useradd (shell, percorso della home, ecc.).
Per creare un utente:
sudo adduser testuserDurante la procedura ti verrà chiesto di:
- impostare e confermare la password
- inserire informazioni opzionali (nome reale, numero di telefono, ecc.)
- confermare la creazione dell’account
Impostare o cambiare le password degli utenti
Dopo aver creato un account, imposti o modifichi la password con passwd:
sudo passwd nomeutenteTi verrà chiesto di digitare e confermare la nuova password. Se un utente senza privilegi esegue passwd senza sudo, può modificare soltanto la propria password:
passwdI requisiti di complessità sono gestiti da PAM. Su Ubuntu, ad esempio, sono configurabili in /etc/pam.d/common-password. Consulta anche:
man pam-auth-updateper informazioni sulle policy.
Modificare gli utenti con usermod
usermod serve a modificare account esistenti: puoi cambiare UID, nome login, directory home, appartenenze ai gruppi e altro. Ad esempio, per aggiornare l’UID:
sudo usermod -u NUOVO_UID nomeutenteAttenzione: cambiare UID o nome login può influire sulla proprietà dei file e sui permessi. Valuta di aggiornare la proprietà dei file con chown -R se necessario.
Per modificare la directory home:
sudo usermod -d /nuova/home nomeutenteAggiungi -m per spostare anche i contenuti:
sudo usermod -d /nuova/home -m nomeutentePer bloccare o sbloccare un account:
sudo usermod -L nomeutente # blocca
sudo usermod -U nomeutente # sbloccaPer impostare una data di scadenza dell’account:
sudo usermod --expiredate AAAA-MM-GG nomeutenteQueste opzioni permettono di controllare l’accesso senza dover eliminare l’account.
Aggiungere utenti ai gruppi
I gruppi consentono a più utenti di condividere permessi comuni (su file, servizi o attività amministrative). Per aggiungere un utente a uno o più gruppi secondari:
sudo usermod -a -G gruppo1,gruppo2 nomeutente- L’opzione -a (append) è fondamentale: senza di essa, la lista dei gruppi secondari viene sovrascritta.
In alternativa, puoi usare gpasswd:
sudo gpasswd -a nomeutente nomegruppo
sudo gpasswd -d nomeutente nomegruppoPer verificare i gruppi di un utente:
groups nomeutente
id nomeutenteRimuovere utenti
Quando un account non serve più, eliminalo con userdel:
sudo userdel nomeutenteQuesto rimuove l’account ma lascia intatta la home. Per cancellare anche la directory personale e la mail spool:
sudo userdel -r nomeutenteNota: userdel non procede se l’utente ha processi attivi. Puoi verificarli e terminarli, ad esempio:
ps -u nomeutente
sudo pkill -u nomeutenteConsultare l’attività di login
Monitorare gli accessi aiuta a individuare tentativi non autorizzati e a risolvere problemi di autenticazione. Su Ubuntu e Debian, gli accessi sono tracciati in /var/log/auth.log:
sudo tail /var/log/auth.logSu Red Hat/CentOS, i log sono in /var/log/secure. Sui sistemi con systemd puoi filtrare gli eventi di autenticazione, ad esempio per SSH:
sudo journalctl -u ssh
# oppure
sudo journalctl | grep sshControllare regolarmente questi log ti permette di reagire rapidamente a comportamenti sospetti.
Gestire correttamente gli account utente mantiene il sistema ordinato e riduce i rischi di accessi non autorizzati. Se vuoi ottimizzare ancora di più il lavoro da terminale, esplora anche strumenti e utility che velocizzano le operazioni quotidiane in shell.
#linux
#utenti-e-gruppi
#amministrazione-sistema
Articolo scritto da Guybrush Threepwood
Guybrush Threepwood, nato nei primi anni ’80, è un autore specializzato in tecnologia, informatica e cultura digitale. Cresciuto in un’epoca di grandi trasformazioni tecnologiche, ha sviluppato fin da bambino una forte passione per i computer e il mondo dei videogiochi, muovendo i primi passi su macchine iconiche come il Commodore Amiga 500, tra floppy disk, linguaggi BASIC e interminabili pomeriggi passati a esplorare mondi virtuali. Grande appassionato di fantascienza, è da sempre affascinato dall’universo di Star Wars, che ha contribuito a plasmare la sua immaginazione e il suo interesse per le tecnologie futuristiche. Parallelamente, ha coltivato un amore per le avventure grafiche classiche, in particolare la saga di Monkey Island, da cui trae ispirazione anche il suo pseudonimo. Nel tempo libero continua a coltivare le sue passioni: retrogaming, fantascienza, smanettamento con nuovi dispositivi e software, e la riscoperta delle tecnologie che hanno segnato la sua infanzia. Per lui, la tecnologia non è solo lavoro, ma un linguaggio attraverso cui raccontare il presente e immaginare il futuro.