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/passwd
    

    Ogni 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 --help
    

    Per aggiungere un nuovo utente con directory home:

    sudo useradd --create-home nomeutente
    

    Senza l’opzione –create-home, l’account viene creato ma senza directory personale. Per verificare la creazione:

    grep nomeutente /etc/passwd
    

    Puoi 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" mario
    

    Creare 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 testuser
    

    Durante 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 nomeutente
    

    Ti verrà chiesto di digitare e confermare la nuova password. Se un utente senza privilegi esegue passwd senza sudo, può modificare soltanto la propria password:

    passwd
    

    I requisiti di complessità sono gestiti da PAM. Su Ubuntu, ad esempio, sono configurabili in /etc/pam.d/common-password. Consulta anche:

    man pam-auth-update
    

    per 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 nomeutente
    

    Attenzione: 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 nomeutente
    

    Aggiungi -m per spostare anche i contenuti:

    sudo usermod -d /nuova/home -m nomeutente
    

    Per bloccare o sbloccare un account:

    sudo usermod -L nomeutente   # blocca
    sudo usermod -U nomeutente   # sblocca
    

    Per impostare una data di scadenza dell’account:

    sudo usermod --expiredate AAAA-MM-GG nomeutente
    

    Queste 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 nomegruppo
    

    Per verificare i gruppi di un utente:

    groups nomeutente
    id nomeutente
    

    Rimuovere utenti

    Quando un account non serve più, eliminalo con userdel:

    sudo userdel nomeutente
    

    Questo rimuove l’account ma lascia intatta la home. Per cancellare anche la directory personale e la mail spool:

    sudo userdel -r nomeutente
    

    Nota: userdel non procede se l’utente ha processi attivi. Puoi verificarli e terminarli, ad esempio:

    ps -u nomeutente
    sudo pkill -u nomeutente
    

    Consultare 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.log
    

    Su 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 ssh
    

    Controllare 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.

    Share.

    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.