Gestire utenti da riga di comando in Linux
Riepilogo
La guida illustra come amministrare utenti su Linux dalla shell: descrive i file critici (/etc/passwd, /etc/group, /etc/shadow, /etc/sudoers, ecc.), mostra come elencare e interrogare account esistenti, creare utenti con useradd/adduser, impostare o cambiare password con passwd, modificare attributi con usermod (UID, home, scadenza, lock/unlock), gestire appartenenze ai gruppi con usermod -aG e gpasswd, rimuovere account con userdel (con o senza home) e consultare i log di accesso via /var/log/auth.log, /var/log/secure e journalctl. Sottolinea attenzione a permessi, scadenze e sicurezza.
Gestire gli utenti da riga di comando in Linux
La gestione degli utenti è una delle attività fondamentali per chi amministra sistemi Linux. Che tu segua una singola macchina o un parco server, tenere ordine tra gli account aiuta a mantenere il controllo e a rafforzare la sicurezza. L’accesso dovrebbe essere concesso solo a chi ne ha davvero bisogno e solo per il tempo necessario: permessi superflui possono esporre dati sensibili o risorse critiche. In questa guida vediamo gli strumenti da terminale per creare, modificare e rimuovere account direttamente dalla shell.
File chiave per la gestione degli utenti in Linux
Linux conserva le informazioni su utenti e gruppi in alcuni file di sistema. Qui trovi dati sugli account, password e configurazioni dei gruppi che gli amministratori usano per gestire accessi e permessi.
-
/etc/passwd
Contiene UID, GID, directory home e shell predefinita. È leggibile da tutti, 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. -
/etc/shadow
Conserva gli hash delle password, scadenze e informazioni sull’account. Accessibile solo a root. -
/etc/gshadow
Include password e scadenze dei gruppi. Accesso riservato a root. -
/etc/skel
Modelli di file (come .bashrc e .profile) copiati nelle home dei nuovi utenti. -
/etc/login.defs
Imposta regole di sicurezza come invecchiamento e scadenza delle password.
Visualizzare gli utenti esistenti
Il modo più rapido per vedere gli utenti presenti su un sistema Linux è consultare il file /etc/passwd, che raccoglie le informazioni di base su tutti gli account:
sudo cat /etc/passwdOgni riga corrisponde a un utente.
Altri comandi utili per interrogare gli account:
id username
groups username
getent passwd username- id mostra UID, GID e tutti i gruppi a cui l’utente appartiene.
- groups elenca solo i gruppi dell’utente, senza UID/GID.
- getent interroga le basi dati di sistema (come /etc/passwd, LDAP o altre fonti configurate) per restituire i dettagli dell’account.
Nota: sui sistemi moderni gli hash delle password non si trovano in /etc/passwd. Le password cifrate vengono salvate in /etc/shadow, leggibile esclusivamente da root.
Creare utenti con il comando useradd
useradd è un binario “di basso livello” disponibile sulla maggior parte delle distro. È meno amichevole rispetto ad adduser, ma le differenze sono minime e si può tranquillamente utilizzare.
Per approfondire opzioni e sintassi:
man useradd
useradd --helpPer aggiungere un nuovo utente creando anche la directory home:
sudo useradd --create-home usernameSenza l’opzione --create-home l’account viene creato senza directory personale. Dopo la creazione puoi verificare con:
grep username /etc/passwdCreare utenti con il comando adduser
adduser è di solito uno script Perl che crea utenti in modo simile a useradd, ma con una procedura interattiva: ti chiede password, percorso della home, e altre informazioni. In alcune distribuzioni (ad esempio Red Hat e CentOS) adduser è un link simbolico a useradd; su Arch Linux adduser è disponibile come pacchetto non installato di default.
Normalmente, la creazione di un utente genera anche un gruppo omonimo. Le impostazioni predefinite per useradd sono spesso gestite in /etc/default/useradd, dove puoi definire shell di default, posizione delle home e altre proprietà degli account.
Esempio di creazione utente:
sudo adduser testuserTi verrà chiesto di impostare e confermare la password, inserire dati opzionali e confermare la creazione dell’account.
Impostare o cambiare la password di un utente
Dopo aver creato un account, puoi definire o aggiornare la password con passwd:
sudo passwd usernameTi verrà richiesto di inserire e confermare la nuova password. Se un utente non privilegiato esegue passwd senza sudo, potrà modificare esclusivamente la propria password.
I requisiti di complessità sono gestiti da PAM e, su Ubuntu, sono configurati in /etc/pam.d/common-password. Per dettagli su come modificarli, consulta la pagina man di pam-auth-update.
Modificare gli utenti con usermod
Il comando usermod permette di cambiare gli attributi di un account esistente: ID utente, nome di login, directory home, appartenenze ai gruppi e altro.
- Aggiornare l’UID:
sudo usermod -u NUOVO_UID usernameFai attenzione nel modificare ID o nome utente: potresti alterare la proprietà dei file o i permessi.
- Cambiare la directory Home:
sudo usermod -d /nuovo/percorso/home username- Bloccare o sbloccare un account:
sudo usermod -L username # blocca
sudo usermod -U username # sblocca- Impostare la data di scadenza dell’account:
sudo usermod --expiredate YYYY-MM-DD usernameQueste opzioni ti consentono di controllare l’accesso e le impostazioni dell’utente senza doverlo eliminare.
Aggiungere utenti ai gruppi
I gruppi permettono a più utenti di condividere gli stessi permessi. Sono utili, ad esempio, per gestire accessi a file, servizi o attività amministrative.
Per aggiungere un utente a uno o più gruppi con usermod:
sudo usermod -a -G gruppo1,gruppo2 username- L’opzione -a (append) è fondamentale: senza di essa, l’elenco dei gruppi dell’utente verrebbe sovrascritto.
In alternativa, puoi usare gpasswd:
sudo gpasswd -a username groupname # aggiungi al gruppo
sudo gpasswd -d username groupname # rimuovi dal gruppoRimuovere utenti
Se un account non serve più, puoi eliminarlo con userdel:
sudo userdel usernameQuesto rimuove l’account ma lascia intatta la home. Per eliminare anche la directory personale e i file associati:
sudo userdel -r usernameNota: userdel non può eliminare un utente se ci sono processi attivi in esecuzione con il suo account.
Consultare l’attività di accesso degli utenti
Monitorare gli accessi aiuta a individuare tentativi non autorizzati e a risolvere problemi di autenticazione.
- Su Ubuntu e Debian i tentativi di login sono registrati in /var/log/auth.log:
sudo tail /var/log/auth.log- Su Red Hat e CentOS i log si trovano in /var/log/secure.
- Sui sistemi con systemd puoi visionare gli eventi di autenticazione, ad esempio relativi a SSH, con:
sudo journalctl | grep sshUna gestione attenta degli account mantiene il sistema ordinato e riduce il rischio di accessi non autorizzati. Se vuoi rendere ancora più produttiva la tua esperienza a terminale, esplora anche strumenti e utility che velocizzano il lavoro in shell.
#linux
#amministrazione
#utenti
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.