Gestione utenti Linux: guida a adduser, usermod e sudo | INTROSERV
EUR
european

EUR

usa

USD

Italy It
Ex. VAT Ex. VAT 0%

Gestione degli utenti su server Linux

Livello: Principiante
Tempo stimato: ~30 minuti
Obiettivo: Conoscere gli strumenti da riga di comando per creare e gestire gli account, configurare l'accesso standard ai servizi e mantenere la disponibilità in sicurezza.

Introduzione

La gestione degli utenti in Linux è una competenza fondamentale per ogni amministratore di sistema. Un controllo degli accessi adeguato garantisce stabilità, sicurezza e tracciabilità del server. In questa guida vedremo le basi per aggiungere account, concedere privilegi (compresa l'escalation dei privilegi in Linux) e mantenere in sicurezza la configurazione standard dei servizi.

Prerequisiti

Prima di iniziare, assicurarsi che siano soddisfatte le seguenti condizioni:

  • Sistema operativo: Ubuntu 22.04/24.04 LTS, Debian 12/13, AlmaLinux/Rocky Linux 8/9/10, RHEL 8/9/10
  • Accesso: accesso sudo o root al server tramite SSH
  • Sistema: gestore di pacchetti funzionante
  • Conoscenze richieste: buona padronanza della riga di comando di Linux

Concetti fondamentali

Prima di apportare modifiche, è opportuno capire come funzionano gli account:

  • UID (User ID): un identificatore numerico univoco assegnato a ciascun utente per tracciare proprietà e permessi.
  • GID (Group ID): un identificatore numerico primario che assegna un utente a uno specifico gruppo. I gruppi Linux organizzano più utenti per condividere i permessi.
  • Home directory: la directory predefinita (/home/username) in cui sono memorizzati i file e le configurazioni personali dell'utente.
  • Shell di login: l'interprete dei comandi (ad es. /bin/bash) che si avvia quando un utente autorizzato effettua l'accesso. Un utente autorizzato è un account a cui è consentito accedere al sistema.
  • Password: una stringa segreta di caratteri usata per l'autenticazione degli utenti in Linux. L'autenticazione è il processo di verifica dell'identità di un utente.
  • Adduser: uno script interattivo (front-end) per creare account, usato principalmente sui sistemi Debian/Ubuntu.
  • Useradd: un'utilità binaria nativa e di basso livello per creare account su tutte le distribuzioni Linux.
  • Blocco dell'account (Account lock): l'azione di disabilitare gli accessi basati su password per mettere in sicurezza il server.
  • Scadenza dell'account (Account expiration): l'azione di disabilitare automaticamente un account a una data specifica.

Passaggio 1: Creare un nuovo utente

Per creare un nuovo utente si usa il comando adduser (su Debian/Ubuntu) oppure il comando useradd (su RHEL/AlmaLinux).

Negli esempi seguenti, sostituire johndoe con il nome utente desiderato. Eseguire il comando seguente per creare un utente chiamato johndoe:

sudo adduser johndoe

Verrà richiesto di inserire una password e alcuni dati facoltativi dell'utente.

Output previsto:

L'output conterrà righe relative alla creazione del gruppo, dell'utente e della home directory, e alla copia dei file da /etc/skel. Il valore esatto di UID/GID dipende dal sistema.

Info

Su RHEL/AlmaLinux, usare sudo useradd -m johndoe (il flag -m garantisce la creazione di /home/johndoe) e impostare la password manualmente con il comando passwd: sudo passwd johndoe.

Passaggio 2: Comprendere sudo su un server Linux

Gli utenti standard non possono modificare la configurazione di sistema né installare software. Il comando sudo di Linux consente agli utenti autorizzati di eseguire comandi con privilegi di root.

2.1 Aggiungere un utente al gruppo sudo

Il modo più semplice per concedere i privilegi è aggiungere l'utente al gruppo amministrativo predefinito usando il comando usermod.

Ubuntu/Debian:

sudo usermod -aG sudo johndoe

RHEL/AlmaLinux:

sudo usermod -aG wheel johndoe

Il comando usermod aggiunge (-a) l'utente al gruppo supplementare (-G). L'utente johndoe può ora eseguire attività amministrative anteponendo sudo ai comandi. In caso di successo il comando non produce output. È possibile verificarlo con groups johndoe: il gruppo sudo (o wheel) dovrebbe comparire nell'elenco.

Passaggio 3: Modificare le proprietà dell'utente

Potrebbe essere necessario bloccare un account o cambiarne la password.

3.1 Cambiare una password

Per forzare il cambio di una password o aggiornare una password dimenticata, eseguire quanto segue con il comando passwd:

sudo passwd johndoe

Verrà richiesto di inserire e confermare la nuova password. Al termine, l'utente potrà accedere con le nuove credenziali.

3.2 Bloccare un account

Se un utente lascia l'azienda, è opportuno eseguire un blocco dell'account per mettere in sicurezza il server:

sudo usermod -L johndoe

L'account viene bloccato immediatamente, impedendo qualsiasi nuovo accesso basato su password. Per sbloccarlo in seguito, usare sudo usermod -U johndoe.

Entrambi i comandi non producono output. È possibile verificare lo stato con passwd -S johndoe (stato L = bloccato, P = attivo).

3.3 Impostare la scadenza dell'account

Per disabilitare automaticamente un account a una data specifica, impostare una scadenza dell'account:

sudo usermod -e 2026-12-31 johndoe

In questo modo i collaboratori temporanei perdono l'accesso automaticamente.

Info

È possibile controllare la data di scadenza con sudo chage -l johndoe. Potrebbe mostrare la data con un giorno di anticipo a causa dell'elaborazione del limite UTC: è normale e l'account scadrà comunque correttamente.

Passaggio 4: Usare il comando sudo di Linux in modo sicuro per la sicurezza del server

Il file sudoers (/etc/sudoers) controlla esattamente chi può usare sudo e che cosa può eseguire.

Per modificare il file sudoers, usare sempre visudo. Controlla la presenza di errori di sintassi prima del salvataggio, evitando blocchi dell'accesso.

Una buona pratica consigliata è creare un file separato per ogni regola, anziché modificare il file principale:

sudo visudo -f /etc/sudoers.d/johndoe

Ciò semplifica il ripristino delle regole e riduce il rischio di danneggiare la configurazione principale di sudoers.

Per consentire a johndoe di riavviare il servizio di sincronizzazione dell'ora senza password, aggiungere la riga appropriata per il proprio sistema operativo:

Ubuntu/Debian:

johndoe ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart systemd-timesyncd

RHEL/AlmaLinux:

johndoe ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart chronyd

Salvare e uscire. johndoe può ora riavviare il servizio senza che gli venga richiesta la password.

L'utente johndoe deve eseguire il comando come sudo systemctl restart systemd-timesyncd (o chronyd), cioè specificamente tramite sudo. Una chiamata diretta per riavviare il servizio senza sudo restituirà un errore di polkit che richiede l'autenticazione interattiva.

Warning

Non modificare mai i file sudoers direttamente con nano o vim. Un errore di sintassi comprometterà l'accesso sudo per l'intero sistema e richiederà un avvio in modalità di ripristino per correggerlo.

Passaggio 5: Eliminare un utente

Quando un account non è più necessario, rimuoverlo per mantenere ordinato il server.

Per eliminare l'utente conservando i suoi file:

sudo deluser johndoe

Su RHEL/AlmaLinux: sudo userdel johndoe

Warning

Eseguendo il comando senza --remove-home (o -r), /home/johndoe e i file dell'utente restano sul disco. Ciò è utile per archiviare i dati, ma occorre essere consapevoli dei file rimanenti.

Per eliminare l'utente e la sua home directory:

sudo deluser --remove-home johndoe

Su RHEL/AlmaLinux: sudo userdel -r johndoe

Per rimuovere il file sudoers dell'utente, se ne è stato creato uno, eseguire:

sudo rm -f /etc/sudoers.d/johndoe

L'account utente è ora completamente rimosso dal sistema.

Info

Prima di rimuovere un utente, assicurarsi che nessun servizio in background dipenda dal suo UID o dai suoi gruppi Linux.

Verifica

Per verificare il nuovo utente e le sue appartenenze ai gruppi, usare il comando id:

id johndoe

Output previsto:

L'output mostrerà l'UID, il GID (che può differire da 1001) e un elenco di gruppi. Verificare che sia presente il gruppo sudo (Debian/Ubuntu) o wheel (RHEL/AlmaLinux). Su Debian/Ubuntu potrebbe comparire nell'elenco anche il gruppo users: è normale.

Per verificare l'accesso sudo, passare al nuovo utente:

su - johndoe

Quindi eseguire un comando che richiede privilegi:

sudo ls /root

Se richiesto, inserire la password di johndoe (quella impostata nel Passaggio 1), non quella di root. Dovrebbe comparire il contenuto della directory /root.

Risoluzione dei problemi

  • Errori di sintassi in sudoers: se si danneggia accidentalmente il file sudoers, spesso è possibile correggerlo eseguendo pkexec visudo da un'altra sessione. Se pkexec non è disponibile, sarà necessario avviare il server in modalità di ripristino/utente singolo per modificare il file.
  • Accesso sudo perso: se si perde l'accesso sudo ma si dispone ancora della password di root, accedere direttamente come root (ad es. con su -) per correggere le appartenenze ai gruppi.
  • Verifica dei privilegi dell'utente: per controllare esattamente quali comandi un utente può eseguire, usare sudo -l -U johndoe.

Rollback

Se è necessario annullare le modifiche apportate in questa guida:

  1. Rimuovere l'utente dal gruppo sudo: sudo gpasswd -d johndoe sudo (o wheel).
  2. Annullare le eventuali aggiunte effettuate tramite visudo.
  3. Eliminare l'utente e la sua home directory: sudo deluser --remove-home johndoe (o sudo userdel -r johndoe).
  4. Rimuovere il relativo file sudoers dedicato: sudo rm -f /etc/sudoers.d/johndoe.

Conclusione

Configurare correttamente gli account consente di gestire gli utenti in Linux in sicurezza, senza compromettere la sicurezza del sistema. Comprendendo il comando adduser, il comando usermod e il comando passwd, insieme a una configurazione sicura di sudo, si mantiene un ambiente stabile e tracciabile.

Versione del documento: 1.0
Ultimo aggiornamento: maggio 2026
Responsabile: Team di documentazione tecnica

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA