Linux Professional Institute Learning Logo.
Torna al contenuto principale
  • Home
    • Tutte le Risorse
    • LPI Learning Materials
    • Collabora
    • Publishing Partner
    • Diventa un Publishing Partner
    • FAQ
    • Collaboratori
    • Traduzioni
    • Contatto
  • LPI.org
107.1 Lezione 1
Argomento 105: Shell e Script di Shell
105.1 Personalizzare e utilizzare l'ambiente di shell
  • 105.1 Lezione 1
  • 105.1 Lezione 2
  • 105.1 Lezione 3
105.2 Personalizzare o scrivere semplici script
  • 105.2 Lezione 1
  • 105.2 Lezione 2
Argomento 106: Interfacce Utente e Desktop
106.1 Installare e configurare X11
  • 106.1 Lezione 1
106.2 Desktop grafici
  • 106.2 Lezione 1
106.3 Accessibilità
  • 106.3 Lezione 1
Argomento 107: Attività Amministrative
107.1 Gestire account utente e gruppo e file di sistema correlati
  • 107.1 Lezione 1
  • 107.1 Lezione 2
107.2 Automatizzare le attività di amministrazione del sistema attraverso la pianificazione
  • 107.2 Lezione 1
  • 107.2 Lezione 2
107.3 Localizzazione e internazionalizzazione
  • 107.3 Lezione 1
Argomento 108: Servizi Essenziali di Sistema
108.1 Mantenere l'orario di sistema
  • 108.1 Lezione 1
  • 108.1 Lezione 2
108.2 Logging di sistema
  • 108.2 Lezione 1
  • 108.2 Lezione 2
108.3 Concetti base dei Mail Transfer Agent (MTA)
  • 108.3 Lezione 1
108.4 Gestire stampa e stampanti
  • 108.4 Lezione 1
Argomento 109: Fondamenti di Networking
109.1 Fondamenti dei protocolli Internet
  • 109.1 Lezione 1
  • 109.1 Lezione 2
109.2 Configurazione di rete persistente
  • 109.2 Lezione 1
  • 109.2 Lezione 2
109.3 Risoluzione dei problemi di base di una rete
  • 109.3 Lezione 1
  • 109.3 Lezione 2
109.4 Configurare un client DNS
  • 109.4 Lezione 1
Argomento 110: Sicurezza
110.1 Eseguire attività di amministrazione della sicurezza
  • 110.1 Lezione 1
110.2 Configurare la sicurezza dell'host
  • 110.2 Lezione 1
110.3 Proteggere i dati con la crittografia
  • 110.3 Lezione 1
  • 110.3 Lezione 2
How to get certified
  1. Argomento 107: Attività Amministrative
  2. 107.1 Gestire account utente e gruppo e file di sistema correlati
  3. 107.1 Lezione 1

107.1 Lezione 1

Certificazione:

LPIC-1

Versione:

5.0

Argomento:

107 Attività Amministrative

Obiettivo:

107.1 Gestire account utente e gruppo e file di sistema correlati

Lezione:

1 di 2

Introduzione

L’amministrazione di utenti e gruppi è una parte molto importante del lavoro di qualsiasi amministratore di sistema. Le moderne distribuzioni Linux implementano interfacce grafiche che permettono di gestire tutte le attività relative a questo aspetto chiave in modo rapido e semplice. Queste interfacce sono diverse l’una dall’altra in termini di layout grafico, ma le caratteristiche sono le stesse. Con questi strumenti è possibile visualizzare, modificare, aggiungere ed eliminare utenti e gruppi locali. Tuttavia, per una gestione più avanzata è necessario lavorare attraverso la riga di comando.

Aggiungere un Account Utente

In Linux è possibile aggiungere un nuovo account utente con il comando useradd. Per esempio, agendo con i privilegi di root, è possibile creare un nuovo account utente chiamato michael con un’impostazione predefinita, come segue:

# useradd michael

Quando si esegue il comando useradd, le informazioni sull’utente e sul gruppo memorizzate nei database delle password e dei gruppi vengono aggiornate per l’account utente appena creato e, se specificato, viene creata anche la home directory del nuovo utente. Viene anche creato un gruppo con lo stesso nome del nuovo account utente.

Una volta creato il nuovo utente, è possibile impostare la sua password usando il comando passwd. È possibile rivedere i propri User ID (UID), Group ID (GID) e i gruppi a cui appartiene attraverso i comandi id e groups.

# passwd michael
Changing password for user michael.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
# id michael
uid=1000(michael) gid=100(michael) groups=100(michael)
# groups michael
michael : michael
Note

Ricorda che qualsiasi utente può rivedere il proprio UID, GID e i gruppi a cui appartiene semplicemente usando i comandi id e groups senza argomenti, e che qualsiasi utente può cambiare la propria password usando il comando passwd. Tuttavia solo gli utenti con i privilegi di root possono cambiare la password di qualsiasi utente.

Le opzioni più importanti che si applicano al comando useradd sono:

-c

Crea un nuovo account utente con commenti personalizzati (per esempio il nome completo dell’utente).

-d

Crea un nuovo account utente con una home directory personalizzata.

-e

Crea un nuovo account utente impostando una data specifica in cui sarà disabilitato.

-f

Crea un nuovo account utente impostando il numero di giorni dopo la scadenza della password durante i quali l’utente deve aggiornare la password (altrimenti l’account sarà disabilitato).

-g

Crea un nuovo account utente con un GID specifico.

-G

Crea un nuovo account utente aggiungendolo a più gruppi secondari.

-k

Crea un nuovo account utente copiando i file skeleton da una specifica directory personalizzata (questa opzione è valida solo se viene specificata l’opzione -m o --create-home).

-m

Crea un nuovo account utente con la sua directory home (se non esiste).

-M

Crea un nuovo account utente senza la sua home directory.

-s

Crea un nuovo account utente con una specifica shell di login.

-u

Crea un nuovo account utente con uno specifico UID.

Vedi le pagine di manuale del comando useradd per la lista completa delle opzioni.

Modificare un Account Utente

A volte è necessario cambiare un attributo di un account utente esistente, come il nome di login, la shell di login, la data di scadenza della password e così via. In questi casi, è necessario utilizzare il comando usermod.

# usermod -s /bin/tcsh michael
# usermod -c "Michael User Account" michael

Proprio come il comando useradd, il comando usermod richiede i privilegi di root.

Negli esempi qui sopra, viene cambiata prima la shell di login di michael e poi viene aggiunta una breve descrizione a questo account utente. Ricorda che puoi modificare più attributi contemporaneamente, specificandoli in un unico comando.

Le opzioni più importanti che si applicano al comando usermod sono:

-c

Aggiunge un breve commento all’account utente specificato.

-d

Cambia la home directory dell’account utente specificato. Quando viene usato con l’opzione -m, il contenuto della home directory corrente viene spostato nella nuova home directory, che viene creata se non esiste già.

-e

Imposta la data di scadenza dell’account utente specificato.

-f

Imposta il numero di giorni dopo la scadenza di una password durante i quali l’utente deve aggiornare la password (altrimenti l’account verrà disabilitato).

-g

Cambia il gruppo primario dell’account utente specificato (il gruppo deve esistere).

-G

Aggiunge gruppi secondari all’account utente specificato. Ogni gruppo deve esistere e deve essere separato dal successivo da una virgola, senza spazi intermedi. Se usata da sola, questa opzione rimuove tutti i gruppi esistenti a cui l’utente appartiene, mentre se usata con l’opzione -a, aggiunge semplicemente nuovi gruppi secondari a quelli esistenti.

-l

Cambia il nome di login dell’account utente specificato.

-L

Blocca l’account utente specificato. Inserisce un punto esclamativo davanti alla password criptata nel file /etc/shadow, disabilitando così l’accesso con password per quell’utente.

-s

Cambia la shell di login dell’account utente specificato.

-u

Cambia l’UID dell’account utente specificato.

-U

Sblocca l’account utente specificato. Rimuove il punto esclamativo davanti alla password criptata con il file /etc/shadow.

Consultare le pagine di manuale del comando usermod per la lista completa delle opzioni.

Tip

Ricorda che quando cambiate il nome di login di un account utente dovresti probabilmente rinominare la home directory di quell’utente e altri elementi relativi all’utente come i file di spool della posta. Ricorda anche che quando cambia l’UID di un account utente dovresti probabilmente fissare la proprietà dei file e delle directory al di fuori della home directory dell’utente (l’ID utente viene cambiato automaticamente per la casella di posta dell’utente e per tutti i file di proprietà dell’utente e situati nella home directory dell’utente).

Eliminare un Account Utente

Se vuoi eliminare un account utente, puoi usare il comando userdel. In particolare, questo comando aggiorna le informazioni memorizzate nei database degli account, cancellando tutte le voci che si riferiscono all’utente specificato. L’opzione -r rimuove anche la directory home dell’utente e tutto il suo contenuto, insieme allo spool di posta dell’utente. Altri file, situati altrove, devono essere cercati e cancellati manualmente.

# userdel -r michael

Come per useradd e usermod, hai bisogno dell’autorità di root per cancellare gli account utente.

Aggiungere, Modificare e Rimuovere i Gruppi

Proprio come per la gestione degli utenti, puoi aggiungere, modificare e cancellare gruppi usando i comandi groupadd, groupmod e groupdel con privilegi di root. Se vuoi creare un nuovo gruppo chiamato developer, puoi eseguire il seguente comando:

# groupadd -g 1090 developer

L’opzione -g di questo comando crea un gruppo con un GID specifico.

Warning

Ricorda che quando aggiungi un nuovo account utente, il gruppo primario e i gruppi secondari a cui appartiene devono esistere prima di lanciare il comando useradd.

In seguito, se vuoi rinominare il gruppo da developer a web-developer e cambiare il suo GID, puoi eseguire quanto segue:

# groupmod -n web-developer -g 1050 developer
Tip

Ricorda che se cambi il GID usando l’opzione -g, devi cambiare il GID di tutti i file e le directory che devono continuare ad appartenere al gruppo.

Infine, se vuoi eliminare il gruppo web-developer, puoi eseguire quanto segue:

# groupdel web-developer

Non puoi eliminare un gruppo se è il gruppo principale di un account utente. Pertanto, è necessario rimuovere l’utente prima di rimuovere il gruppo. Come per gli utenti, se si elimina un gruppo, i file appartenenti a quel gruppo rimangono nel filesystem e non vengono cancellati o assegnati a un altro gruppo.

La Directory Skeleton

Quando si aggiunge un nuovo account utente, anche creando la sua home directory, la home directory appena creata viene popolata con file e cartelle che vengono copiati dalla directory skeleton (di default /etc/skel). L’idea alla base è semplice: un amministratore di sistema vuole aggiungere nuovi utenti che abbiano gli stessi file e cartelle nella loro home directory. Quindi, se vuoi personalizzare i file e le cartelle che vengono creati automaticamente nella home directory dei nuovi account utente, devi aggiungere questi nuovi file e cartelle alla directory skeleton.

Tip

Nota che se vuoi elencare tutti i file e le directory nella directory skeleton, devi usare il comando ls -al.

Il File /etc/login.defs

In Linux, il file /etc/login.defs specifica i parametri di configurazione che controllano la creazione di utenti e gruppi. Inoltre, i comandi mostrati nelle sezioni precedenti prendono i valori predefiniti da questo file.

Le direttive più importanti sono:

UID_MIN e UID_MAX

L’intervallo di ID utente che può essere assegnato ai nuovi utenti ordinari.

GID_MIN e GID_MAX

L’intervallo di ID di gruppo che può essere assegnato ai nuovi gruppi ordinari.

CREATE_HOME

Specifica se una home directory deve essere creata di default per i nuovi utenti.

USERGROUPS_ENAB

Specifica se il sistema debba creare di default un nuovo gruppo per ogni nuovo account utente con lo stesso nome dell’utente, e se, eliminando l’account utente, debba rimuovere anche il gruppo primario dell’utente qualora non contenga più membri.

MAIL_DIR

La directory di spool della posta.

PASS_MAX_DAYS

Il numero massimo di giorni in cui una password può essere usata.

PASS_MIN_DAYS

Il numero minimo di giorni consentito tra un cambio di password e l’altro.

PASS_MIN_LEN

La lunghezza minima accettabile della password.

PASS_WARN_AGE

Il numero di giorni di preavviso prima che una password scada.

Tip

Quando si gestiscono utenti e gruppi, controllare sempre questo file per visualizzare ed eventualmente cambiare il comportamento predefinito del sistema se necessario.

Il Comando passwd

Questo comando è usato principalmente per cambiare la password di un utente. Come descritto prima, ogni utente può cambiare la propria password, ma solo root può cambiare la password di qualsiasi utente. Questo accade perché il comando passwd ha il bit SUID impostato (una s al posto del flag eseguibile per il proprietario), il che significa che viene eseguito con i privilegi del proprietario del file (quindi root).

# ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 42096 mag 17  2015 /usr/bin/passwd

A seconda delle opzioni passwd usate, si possono controllare aspetti specifici della scadenza delle password:

-d

Cancella la password di un account utente (disabilitando così l’utente).

-e

Forza l’account utente a cambiare la password.

-i

Imposta il numero di giorni di inattività dopo la scadenza di una password durante i quali l’utente dovrebbe aggiornare la password (altrimenti l’account sarà disabilitato).

-l

Blocca l’account utente (la password criptata è preceduta da un punto esclamativo nel file /etc/shadow).

-n

Imposta la durata minima della password.

-S

Mostra informazioni sullo stato della password di uno specifico account utente.

-u

Sblocca l’account utente (il punto esclamativo viene rimosso dal campo password nel file /etc/shadow).

-x

Imposta la durata massima della password.

-w

Imposta il numero di giorni di preavviso prima che la password scada, durante i quali l’utente viene avvisato che la password deve essere cambiata.

Note

I gruppi possono anche avere una password, che può essere impostata usando il comando gpasswd. Gli utenti che non sono membri di un gruppo ma ne conoscono la password possono unirsi temporaneamente a esso usando il comando newgrp. Ricorda che gpasswd è usato anche per aggiungere e rimuovere utenti da un gruppo e per impostare la lista degli amministratori e dei membri ordinari del gruppo.

Il Comando chage

Questo comando, che sta per “change age”, è usato per cambiare le informazioni sulla scadenza della password di un utente. Il comando chage è limitato a root, tranne che per l’opzione -l, che può essere usata dagli utenti comuni per elencare le informazioni sulla password del proprio account.

Le altre opzioni che si applicano al comando chage sono:

-d

Imposta l’ultimo cambio di password per un account utente.

-E

Imposta la data di scadenza per un account utente.

-I

Imposta il numero di giorni di inattività dopo la scadenza di una password durante i quali l’utente dovrebbe aggiornare la password (altrimenti l’account sarà disabilitato).

-m

Imposta la durata minima della password per un account utente.

-M

Imposta la durata massima della password per un account utente.

-W

Imposta il numero di giorni di preavviso prima della scadenza della password durante i quali l’utente viene avvisato che la password deve essere cambiata.

Esercizi Guidati

  1. Per ciascuno dei seguenti comandi, identifica lo scopo corrispondente:

    usermod -L

    passwd -u

    chage -E

    groupdel

    useradd -s

    groupadd -g

    userdel -r

    usermod -l

    groupmod -n

    useradd -m

  2. Per ciascuno dei seguenti comandi passwd, identifica il corrispondente comando chage:

    passwd -n

    passwd -x

    passwd -w

    passwd -i

    passwd -S

  3. Spiega in dettaglio lo scopo dei comandi nella domanda precedente:

  4. Quali comandi si possono usare per bloccare un account utente? E quali comandi per sbloccarlo?

Esercizi Esplorativi

  1. Usando il comando groupadd, crea i gruppi administrators e developers. Supponiamo che tu stia lavorando come root.

  2. Ora che hai creato questi gruppi, esegui il seguente comando: useradd -G administrators,developers kevin. Quali operazioni esegue questo comando? Assumiamo che CREATE_HOME e USERGROUPS_ENAB in /etc/login.defs siano impostati su yes.

  3. Crea un nuovo gruppo chiamato designers, rinominalo in web-designers e aggiungi questo nuovo gruppo ai gruppi secondari dell’account utente kevin. Identifica tutti i gruppi a cui appartiene kevin e i loro ID.

  4. Rimuovi solo il gruppo developers dai gruppi secondari di kevin.

  5. Imposta la password per l’account utente kevin.

  6. Usando il comando chage, prima controlla la data di scadenza dell’account utente kevin e poi cambiala al 31 dicembre 2022. Quale altro comando puoi usare per cambiare la data di scadenza di un account utente?

  7. Aggiungi un nuovo account utente chiamato emma con UID 1050 e imposta administrators come gruppo primario e developers e web-designer come gruppi secondari.

  8. Cambia la shell di login di emma in /bin/sh.

  9. Elimina gli account utente emma e kevin e i gruppi administrators, developers e web-designers.

Sommario

In questa lezione abbiamo imparato:

  • I fondamenti della gestione utenti e gruppi in Linux.

  • Come aggiungere, modificare e rimuovere gli account utente.

  • Come aggiungere, modificare e rimuovere gli account dei gruppi.

  • Mantenere la directory skeloton.

  • Modificare il file che controlla la creazione di utenti e gruppi.

  • Cambiare le password degli account utente.

  • Cambiare le informazioni sulla scadenza delle password degli account utente.

I seguenti file e comandi sono stati discussi in questa lezione:

useradd

Crea un nuovo account utente.

usermod

Modifica un account utente.

userdel

Elimina un account utente.

groupadd

Crea un nuovo account di gruppo.

groupmod

Modifica un account di gruppo.

groupdel

Elimina un account di gruppo.

passwd

Cambia la password degli account utente e controlla tutti gli aspetti della scadenza delle password.

chage

Cambia le informazioni sulla scadenza della password dell’utente.

/etc/skel

La posizione predefinita della directory skeleton.

/etc/login.defs

Il file che controlla la creazione di utenti e gruppi e fornisce valori predefiniti per diversi parametri dell’account utente.

Risposte agli Esercizi Guidati

  1. Per ciascuno dei seguenti comandi, identifica lo scopo corrispondente:

    usermod -L

    Blocca l’account dell’utente

    passwd -u

    Sblocca l’account utente

    chage -E

    Imposta la data di scadenza per l’account utente

    groupdel

    Elimina il gruppo

    useradd -s

    Crea un nuovo account utente con una specifica shell di login

    groupadd -g

    Crea un nuovo gruppo con un GID specifico

    userdel -r

    Rimuove l’account utente e tutti i file nella sua home directory, la home directory stessa e lo spool di posta dell’utente

    usermod -l

    Cambia il nome di login dell’account utente

    groupmod -n

    Cambiare il nome del gruppo

    useradd -m

    Creare un nuovo account utente e la sua home directory

  2. Per ciascuno dei seguenti comandi passwd, identifica il corrispondente comando chage:

    passwd -n

    chage -m

    passwd -x

    chage -M

    passwd -w

    chage -W

    passwd -i

    chage -I

    passwd -S

    chage -l

  3. Spiega in dettaglio lo scopo dei comandi nella domanda precedente:

    In Linux, puoi usare il comando passwd -n (o chage -m) per impostare il numero minimo di giorni tra i cambi di password, il comando passwd -x (o chage -M) per impostare il numero massimo di giorni durante i quali una password è valida, il comando passwd -w (o chage -W) per impostare il numero di giorni di avviso prima che la password scada, il comando passwd -i (o chage -I) per impostare il numero di giorni di inattività durante i quali l’utente dovrebbe cambiare la password; infine il comando passwd -S (o chage -l) per mostrare brevi informazioni sulla password dell’account utente.

  4. Quali comandi si possono usare per bloccare un account utente? E quali comandi per sbloccarlo?

    Se vuoi bloccare un account utente, puoi usare uno di questi comandi: usermod -L, usermod --lock e passwd -l. Invece, se vuoi sbloccarlo, puoi usare usermod -U, usermod --unlock e passwd -u.

Risposte agli Esercizi Esplorativi

  1. Usando il comando groupadd, crea i gruppi administrators e developers. Supponiamo che tu stia lavorando come root.

    # groupadd administrators
    # groupadd developers
  2. Ora che hai creato questi gruppi, esegui il seguente comando: useradd -G administrators,developers kevin. Quali operazioni esegue questo comando? Assumiamo che CREATE_HOME e USERGROUPS_ENAB in /etc/login.defs siano impostati su yes.

    Il comando aggiunge un nuovo utente, chiamato kevin, alla lista degli utenti nel sistema, crea la sua home directory (CREATE_HOME è impostato su yes e quindi si può omettere l’opzione -m) e crea un nuovo gruppo, chiamato kevin, come gruppo primario di questo account utente (USERGROUPS_ENAB è impostato su yes). Infine, i file e le cartelle contenuti nella directory skeleton vengono copiati nella home directory di kevin.

  3. Crea un nuovo gruppo chiamato designers, rinominalo in web-designers e aggiungi questo nuovo gruppo ai gruppi secondari dell’account utente kevin. Identifica tutti i gruppi a cui appartiene kevin e i loro ID.

    # groupadd designers
    # groupmod -n web-designers designers
    # usermod -a -G web-designers kevin
    # id kevin
    uid=1010(kevin) gid=1030(kevin) groups=1030(kevin),1028(administrators),1029(developers),1031(web-designers)
  4. Rimuovi solo il gruppo developers dai gruppi secondari di kevin.

    # usermod -G administrators,web-designers kevin
    # id kevin
    uid=1010(kevin) gid=1030(kevin) groups=1030(kevin),1028(administrators),1031(web-designers)

    Il comando usermod non ha un’opzione per rimuovere un solo gruppo; quindi, è necessario specificare tutti i gruppi secondari a cui l’utente appartiene.

  5. Imposta la password per l’account utente kevin.

    # passwd kevin
    Changing password for user kevin.
    New UNIX password:
    Retype new UNIX password:
    passwd: all authentication tokens updated successfully.
  6. Usando il comando chage, prima controlla la data di scadenza dell’account utente kevin e poi cambiala al 31 dicembre 2022. Quale altro comando puoi usare per cambiare la data di scadenza di un account utente?

    # chage -l kevin | grep "Account expires"
    Account expires		: never
    # chage -E 2022-12-31 kevin
    # chage -l kevin | grep "Account expires"
    Account expires		: dec 31, 2022

    Il comando usermod con l’opzione -e è equivalente a chage -E.

  7. Aggiungi un nuovo account utente chiamato emma con UID 1050 e imposta administrators come gruppo primario e developers e web-designer come gruppi secondari.

    # useradd -u 1050 -g administrators -G developers,web-designers emma
    # id emma
    uid=1050(emma) gid=1028(administrators) groups=1028(administrators),1029(developers),1031(web-designers)
  8. Cambia la shell di login di emma in /bin/sh.

    # usermod -s /bin/sh emma
  9. Elimina gli account utente emma e kevin e i gruppi administrators, developers e web-designers.

    # userdel -r emma
    # userdel -r kevin
    # groupdel administrators
    # groupdel developers
    # groupdel web-designers

Linux Professional Institute Inc. Tutti i diritti riservati. Visita il sito Learning Materials: https://learning.lpi.org
Quest'opera è sotto la licenza 'Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License'.

Prossima Lezione

107.1 Gestire account utente e gruppo e file di sistema correlati (107.1 Lezione 2)

Leggi la prossima Lezione

Linux Professional Institute Inc. Tutti i diritti riservati. Visita il sito Learning Materials: https://learning.lpi.org
Quest'opera è sotto la licenza 'Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License'.

LPI è una organizzazione non-profit.

© 2025 Linux Professional Institute (LPI) è lo standard di certificazione globale e l'organizzazione di supporto alla carriera per i Professionisti Open Source. Con più di 250,000 titolari di Certificazione, è il primo e il più grande ente di Certificazione Open Source e Linux vendor-neutral. LPI ha professionisti certificati in oltre 180 Paesi, offre i suoi Esami in più lingue e ha centinaia di Partner di formazione in tutto il mondo.

La nostra missione è promuovere l'uso dell'Open Source supportando le persone che vi lavorano.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Contattaci
  • Privacy & Cookie Policy

Trovato un errore? Per favore scrivi a contattaci.

© 1999–2025 The Linux Professional Institute Inc. Tutti i diritti riservati.