Come verificare l’elenco degli utenti in Ubuntu | Guida completa a login, gestione e cancellazione

目次

1. Introduzione

Ubuntu è una distribuzione Linux popolare usata da molti utenti, dal uso personale agli ambienti server aziendali. Gestire gli account utente è essenziale quando si amministra un sistema Ubuntu. In particolare, controllare l’elenco degli utenti registrati aiuta nella gestione della sicurezza e nell’organizzazione degli account.

Questo articolo fornisce una spiegazione dettagliata su come controllare l’elenco degli utenti in Ubuntu. Copre tutto, dai comandi di base al recupero di informazioni dettagliate sugli utenti, rendendolo utile sia per i principianti che per gli utenti avanzati.

2. Come controllare l’elenco degli utenti in Ubuntu

In Ubuntu, le informazioni sugli utenti possono essere recuperate facilmente usando file o comandi specifici. È possibile controllare l’elenco degli utenti con i seguenti metodi.

2.1 Visualizzare l’elenco degli utenti con /etc/passwd

In Ubuntu, tutte le informazioni sugli utenti sono memorizzate nel file /etc/passwd. Visualizzando questo file, è possibile vedere tutti gli utenti registrati.

Comando di esempio

cat /etc/passwd

Eseguendo questo comando verranno visualizzate le informazioni nel seguente formato:

root:x:0:0:root:/root:/bin/bash
user1:x:1000:1000:User One,,,:/home/user1:/bin/bash
user2:x:1001:1001:User Two,,,:/home/user2:/bin/bash

Ogni riga è composta da campi separati da due punti (“:“) e contiene le seguenti informazioni:

  1. Nome utente
  2. Password (attualmente visualizzata come “x” per motivi di sicurezza)
  3. ID utente (UID)
  4. ID gruppo (GID)
  5. Informazioni utente (Commenti)
  6. Directory home
  7. Shell predefinita

Poiché questo file include anche gli utenti di sistema è possibile utilizzare il metodo seguente per estrarre solo gli utenti di login regolari.

2.2 Recuperare solo i nomi utente

Per visualizzare solo l’elenco dei nomi utente, usa il comando seguente:

cut -d: -f1 /etc/passwd

In alternativa, è possibile utilizzare il comando awk:

awk -F':' '{ print $1 }' /etc/passwd

Esempio di output:

root
user1
user2

2.3 Ricercare un utente specifico

Per verificare se un utente specifico esiste, usa il comando grep:

grep 'user1' /etc/passwd

Eseguendo questo comando verranno visualizzate solo le informazioni relative a user1.

2.4 Recuperare le informazioni di gruppo con /etc/group

Per verificare a quali gruppi appartiene un utente, consultare il file /etc/group.

cat /etc/group | cut -d: -f1

Per controllare i gruppi a cui appartiene un utente specifico, usa il comando seguente:

groups user1

Esempio di output:

user1 : user1 sudo

Ciò indica che user1 è anche membro del gruppo sudo.

3. Come controllare gli utenti attualmente connessi

In Ubuntu, esistono diversi modi per verificare quali utenti sono attualmente connessi al sistema. Utilizzando comandi specifici, è possibile recuperare informazioni sulle sessioni attive e sugli utenti connessi.

3.1 Controllare gli utenti connessi con il comando who

Il comando who elenca tutti gli utenti attualmente connessi.

Comando di esempio

who

Esempio di output

user1    tty1         2025-02-16 10:05
user2    pts/0        2025-02-16 11:30

Spiegazione dei campi

  1. Nome utente (l’utente connesso)
  2. Nome terminale (console fisica tty1 o sessione remota pts/0)
  3. Ora di login

Il comando who è semplice utile per verificare rapidamente gli utenti connessi.

3.2 Controllare l’attività dettagliata degli utenti con il comando w

Il comando w fornisce informazioni più dettagliate rispetto a who.

Comando di esempio

w

Esempio di output

 11:35:25 up 2:15,  2 users,  load average: 0.03, 0.02, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
user1    tty1                      10:05    1:30m  0.10s  0.10s -bash
user2    pts/0    192.168.1.10      11:30    0.00s  0.05s  0.02s sshd

Spiegazione dei campi

  • Tempo di Attività del Sistema (up 2:15)
  • Numero di Utenti Connessi (2 users)
  • Carico Medio CPU
  • Nome Utente (USER)
  • Terminale Connesso (TTY)
  • Sorgente Connessione Remota (FROM)
  • Ora di Accesso (LOGIN@)
  • Tempo di Inattività (IDLE)
  • Utilizzo CPU (JCPU, PCPU)
  • Processo in Esecuzione (WHAT)

Poiché il campo FROM mostra l’indirizzo IP remoto per le connessioni SSH, questo comando è utile per gestire e monitorare l’accesso remoto.

3.3 Controllo Rapido degli Utenti Connessi con il Comando users

Se hai bisogno solo di un elenco semplice dei nomi utente attualmente connessi, usa il comando users.

Comando di Esempio

users

Output di Esempio

user1 user2

Questo comando è una versione semplificata di who, che visualizza solo i nomi utente.

3.4 Controllo dell’Utente Corrente con il Comando whoami

Se vuoi controllare quale utente sta attualmente eseguendo una sessione terminale, usa il comando whoami.

Comando di Esempio

whoami

Output di Esempio

user1

Questo comando è utile per verificare quale account utente sta eseguendo i comandi.

3.5 Controllo della Cronologia Recente degli Accessi con il Comando last

Il comando last ti permette di controllare la cronologia degli accessi degli utenti passati.

Comando di Esempio

last

Output di Esempio

user1    pts/0        192.168.1.10     Mon Feb 15 10:20   still logged in
user2    tty1                          Mon Feb 15 09:30 - 10:00  (00:30)
root     tty1                          Sun Feb 14 22:15 - 23:45  (01:30)

Spiegazione dei Campi

  • Nome Utente
  • Terminale Connesso (tty1, pts/0, ecc.)
  • Sorgente Connessione Remota (Indirizzo IP)
  • Ora di Inizio Accesso
  • Ora di Logout (o “ancora connesso” per sessioni attive)
  • Durata Totale Accesso (ad es., 00:30 = 30 minuti)

Questo comando è utile per monitorare gli accessi passati e rilevare accessi non autorizzati.

4. Come Controllare Informazioni Dettagliate sugli Utenti

In Ubuntu, sono disponibili diversi comandi per recuperare informazioni dettagliate sugli utenti registrati. Controllando l’UID di un utente, i gruppi, la shell di login e altri attributi, gli amministratori possono gestire efficacemente le autorizzazioni e le impostazioni di sicurezza. Questa sezione spiega come ottenere informazioni dettagliate sugli utenti utilizzando comandi come id, finger e chage.

4.1 Controllo UID Utente, GID e Gruppi con il Comando id

Il comando id fornisce informazioni sull’UID (User ID) di un utente, GID (Group ID) e appartenenze ai gruppi.

Comando di Esempio
id user1
Output di Esempio
uid=1001(user1) gid=1001(user1) groups=1001(user1),27(sudo),1002(docker)
Spiegazione dei Campi
  • uid=1001(user1)ID Utente (Identificatore univoco per l’utente)
  • gid=1001(user1)ID Gruppo (Gruppo principale dell’utente)
  • groups=1001(user1),27(sudo),1002(docker)Elenco dei gruppi a cui appartiene l’utente

Queste informazioni sono utili quando si verifica a quali gruppi è assegnato un utente.

Controllo Informazioni per l’Utente Attualmente Connesso
id

Eseguendo questo comando verrà visualizzata l’informazione ID per l’utente attualmente connesso.

4.2 Controllo dei Gruppi di un Utente con il Comando groups

Per controllare a quali gruppi appartiene un utente specifico, usa il comando groups.

Comando di Esempio
groups user1
Output di Esempio
user1 : user1 sudo docker

Mentre il comando id fornisce anche informazioni sui gruppi, il comando groups è più comodo quando hai bisogno solo di controllare i nomi dei gruppi.

Controllo Gruppi per l’Utente Attualmente Connesso
groups

Questo comando visualizza i gruppi a cui appartiene l’utente corrente.

4.3 Recupero Informazioni Dettagliate sugli Utenti con il Comando finger

Il comando finger fornisce dettagli aggiuntivi come nome completo, informazioni di login e tipo di shell.

Installazione di finger

Il comando finger non è installato per impostazione predefinita. Installalo con il seguente comando:

sudo apt install finger
Comando di Esempio
finger user1
Esempio di Output
Login: user1                    Name: User One
Directory: /home/user1           Shell: /bin/bash
Last login: Mon Feb 16 10:20 (UTC) on pts/0
Spiegazione dei Campi
  • Login → Nome utente
  • Name → Nome completo (può essere vuoto)
  • Directory → Directory home dell’utente
  • Shell → La shell che l’utente sta usando
  • Last login → L’ultimo orario di login registrato

Gli amministratori di sistema possono usare finger per controllare rapidamente quali utenti sono loggati e la loro ultima attività di login.

4.4 Controllo della Scadenza della Password con il Comando chage

Gli amministratori possono usare il comando chage per controllare i dettagli di scadenza della password e la data dell’ultimo cambio password per un utente.

Esempio di Comando
sudo chage -l user1
Esempio di Output
Last password change            : Jan 15, 2025
Password expires                : Mar 15, 2025
Password inactive               : never
Account expires                 : never
Minimum number of days between password change : 7
Maximum number of days between password change : 60
Number of days of warning before password expires : 5
Spiegazione dei Campi
  • Last password change → La data dell’ultimo aggiornamento della password
  • Password expires → La data di scadenza della password
  • Password inactive → Il periodo prima che una password diventi inattiva
  • Account expires → La data in cui l’account verrà disabilitato
  • Minimum number of days between password change → L’intervallo minimo richiesto tra i cambi di password
  • Maximum number of days between password change → Il periodo massimo in cui una password rimane valida
  • Number of days of warning before password expires → Il numero di giorni prima della scadenza in cui gli utenti ricevono un avviso

Gli amministratori possono usare queste informazioni per imporre una politica di password e migliorare la sicurezza.

5. Gestione degli Utenti in Ubuntu (Aggiunta, Eliminazione e Modifica)

Una corretta gestione degli utenti è cruciale per gli amministratori di sistema in Ubuntu. Aggiungere nuovi utenti, rimuovere quelli vecchi e modificare le informazioni degli utenti esistenti aiuta a mantenere la sicurezza e l’efficienza. Questa sezione spiega come gestire gli utenti usando comandi come adduser, deluser e usermod.

5.1 Aggiunta di un Utente

Per creare un nuovo utente in Ubuntu, puoi usare il comando adduser o useradd.

5.1.1 Uso del Comando adduser (Raccomandato)

Il comando adduser è uno strumento interattivo che semplifica il processo di creazione dell’utente.

Esempio di Comando
sudo adduser newuser
Processo Interattivo
Adding user `newuser' ...
Adding new group `newuser' (1002) ...
Adding new user `newuser' (1002) with group `newuser' ...
Creating home directory `/home/newuser' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: ********
Retype new UNIX password: ********
passwd: password updated successfully
Changing the user information for newuser
Enter the new value, or press ENTER for the default
        Full Name []: 
        Room Number []: 
        Work Phone []: 
        Home Phone []: 
        Other []: 
Is the information correct? [Y/n]
Cosa Viene Creato
  • Account utente
  • Gruppo dedicato
  • Directory home (/home/newuser)
  • Password di login
  • Informazioni base dell’utente

Questo metodo è il più comune ed è adatto ai principianti.

5.1.2 Uso del Comando useradd (Per Utenti Avanzati)

Il comando useradd differisce da adduser in quanto è uno strumento di livello inferiore, progettato per lo scripting e non crea automaticamente una directory home.

Esempio di Comando
sudo useradd -m -s /bin/bash newuser
sudo passwd newuser
Descrizioni delle Opzioni
  • -m → Crea una directory home
  • -s /bin/bash → Imposta la shell predefinita su /bin/bash

Quando si usa useradd, devi impostare manualmente una password per il nuovo utente.

5.2 Eliminazione di un Utente

Per rimuovere un account utente che non è più necessario, usa il comando deluser o userdel.

5.2.1 Utilizzo del comando deluser (Consigliato)

Il comando deluser è il corrispondente di adduser e viene usato per rimuovere gli utenti.

Esempio di comando
sudo deluser newuser
Rimuovere anche la directory home
sudo deluser --remove-home newuser

Questo comando eliminerà sia l’account utente sia la directory home dell’utente (/home/newuser).

5.2.2 Utilizzo del comando userdel (Per utenti avanzati)

Il comando userdel offre un controllo più diretto sulla rimozione degli utenti.

Esempio di comando
sudo userdel newuser
Cancellare la directory home
sudo userdel -r newuser

A differenza di deluser, userdel può essere rischioso se usato in modo errato, quindi procedi con cautela.

5.3 Modifica delle informazioni utente

Per modificare i dettagli di un utente esistente, usa il comando usermod.

5.3.1 Cambiare il nome utente

Esempio di comando
sudo usermod -l newname oldname

Questo cambia oldname in newname.

5.3.2 Cambiare la directory home

Per cambiare la directory home di un utente, usa l’opzione -d.

Esempio di comando
sudo usermod -d /new/home/path user1
Spostare la directory home corrente in una nuova posizione
sudo usermod -d /home/newuser -m user1

5.3.3 Cambiare l’appartenenza a gruppi dell’utente

Per aggiungere un utente a un gruppo diverso, usa usermod -aG.

Aggiungere un utente al gruppo sudo
sudo usermod -aG sudo user1
Verificare l’appartenenza ai gruppi corrente
groups user1

5.3.4 Cambiare la password di un utente

Gli amministratori possono cambiare la password di un utente usando il comando passwd.

Esempio di comando
sudo passwd user1
Esempio di output
Enter new UNIX password: ********
Retype new UNIX password: ********
passwd: password updated successfully

Questo comando aggiorna la password per user1, richiedendo l’uso della nuova password al prossimo accesso.

6. Casi d’uso pratici per la gestione degli utenti

Gestire gli utenti in Ubuntu non consiste solo nell’elencare, aggiungere o eliminare. Comprendere come gestire gli utenti in modo efficace in base a scenari specifici è fondamentale.
Questa sezione forniscecasi d’uso reali ed esempi di comandi** per aiutarti a gestire gli utenti in modo efficiente.

6.1 Trovare utenti in base a criteri specifici

6.1.1 Elencare gli amministratori (utenti con privilegi sudo)

Gli amministratori di sistema spesso devono verificare quali utenti hanno privilegi sudo. Puoi ottenere queste informazioni usando il comando getent per cercare nel file /etc/group.

Esempio di comando
getent group sudo
Esempio di output
sudo:x:27:user1,user2

Spiegazione dell’output:

  • sudo:x:27: → Informazioni sul gruppo sudo
  • user1,user2 → Utenti che appartengono al gruppo sudo

Questo metodo ti consente di verificare rapidamente quali utenti hanno privilegi amministrativi.

6.1.2 Elencare solo gli utenti abilitati al login

Il file /etc/passwd contiene sia utenti di sistema sia utenti regolari. Per trovare gli utenti che possono effettivamente accedere, filtra quelli con una shell valida.

Esempio di comando
grep '/bin/bash' /etc/passwd
Esempio di output
user1:x:1001:1001::/home/user1:/bin/bash
user2:x:1002:1002::/home/user2:/bin/bash

Vantaggi di questo metodo:

  • Vengono mostrati solo gli utenti con /bin/bash o /bin/sh
  • Gli account di sistema con nologin sono esclusi

6.1.3 Elencare gli utenti di sistema (account senza login)

Gli utenti di sistema solitamente hanno /usr/sbin/nologin o /bin/false impostati come shell predefinita. Puoi filtrarli con il comando seguente.

Esempio di comando
grep -E '/usr/sbin/nologin|/bin/false' /etc/passwd
Esempio di output
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
syslog:x:104:110::/home/syslog:/bin/false

Verificare gli account di sistema assicura che non vengano cancellati per errore.

6.2 Rimozione periodica di utenti inutilizzati

6.2.1 Elencare gli utenti che non hanno effettuato l’accesso di recente

Per eliminare gli utenti inattivi, controlla la cronologia degli ultimi accessi utilizzando il comando lastlog.

Comando di Esempio
lastlog
Output di Esempio
Username         Port     From             Latest
root            tty1                      Mon Feb 12 14:02:08 +0000 2025
user1           pts/0    192.168.1.10      Mon Jan 15 10:30:12 +0000 2025
user2           pts/1    192.168.1.20      Never logged in
  • Never logged in → L’utente non ha mai effettuato l’accesso

In base a queste informazioni, puoi decidere se rimuovere gli account inattivi.

Comando per Eliminare un Account Non Utilizzato
sudo deluser user2 --remove-home

6.2.2 Controllo della Data dell’Ultimo Cambiamento della Password

Il comando chage ti permette di controllare quando un utente ha cambiato la password l’ultima volta.

Comando di Esempio
sudo chage -l user1
Output di Esempio
Last password change            : Jan 15, 2025
Password expires                : Mar 15, 2025
Password inactive               : never

Se una password non è stata cambiata da molto tempo, potresti voler forzare un reset.

Forzare un Cambiamento della Password
sudo passwd --expire user1

Questo forza l’utente a impostare una nuova password al prossimo accesso.

6.3 Controllo degli Utenti Connessi via SSH

Quando gestisci un server remoto, è importante tracciare quali utenti sono connessi via SSH.

Comando di Esempio
who | grep pts
Output di Esempio
user1    pts/0        192.168.1.10     11:30

Questo comando aiuta a identificare gli utenti remoti e i loro indirizzi IP.

6.4 Esportazione di Tutte le Informazioni sugli Utenti in un File CSV

Se hai bisogno di creare un report che elenchi tutti gli utenti, puoi esportare i dati utilizzando il comando getent.

Comando di Esempio
getent passwd | awk -F: '{print $1 "," $3 "," $4 "," $6}' > users.csv
Output CSV di Esempio
root,0,0,/root
user1,1001,1001,/home/user1
user2,1002,1002,/home/user2
  • Nomi utente, UID, GID e directory home vengono esportati in formato CSV
  • I dati possono essere analizzati utilizzando Excel o Google Sheets

7. FAQ (Domande Frequenti)

Questa sezione risponde a domande comuni relative alla gestione degli utenti in Ubuntu. Fornisce consigli per la risoluzione dei problemi e le migliori pratiche per un’amministrazione efficiente degli utenti.

7.1 È Sicuro Modificare Direttamente /etc/passwd?

Risposta:

La modifica diretta non è consigliata. Il file /etc/passwd è un file di sistema critico e modifiche errate possono impedire agli utenti di effettuare l’accesso.

Metodi Consigliati:

Utilizza comandi come usermod o vipw per una modifica sicura.

Comando per Modifica Sicura:
sudo vipw

Questo comando blocca il file per prevenire modifiche concorrenti, garantendo modifiche sicure.

7.2 Qual è la Differenza tra i Comandi who e users?

Risposta:

Command

Descrizione

who

Visualizza i dettagli degli utenti connessi, inclusi l’ora di login e il terminale.

users

Mostra solo i nomi utente degli utenti attualmente connessi in un elenco semplice.

Utilizzo di Esempio:

who

Output di Esempio:

user1    tty1         2025-02-16 10:05
user2    pts/0        2025-02-16 11:30
users

Output di Esempio:

user1 user2

Il comando who fornisce informazioni più dettagliate.

7.3 Come Posso Controllare la Cronologia degli Accessi di un Utente Specifico?

Risposta:

Utilizza il comando last per controllare la cronologia degli accessi.

Comando di Esempio:
last user1
Output di Esempio:
user1    pts/0        192.168.1.10     Mon Feb 15 10:20   still logged in
user1    tty1                          Mon Feb 10 09:30 - 10:00  (00:30)

Questo aiuta a tracciare le attività di accesso, incluse le connessioni remote.

7.4 Come Posso Cambiare la Password di un Utente?

Risposta:

Gli amministratori possono cambiare la password di un utente utilizzando il comando passwd.

Comando di Esempio:
sudo passwd user1
Output di Esempio:
Enter new UNIX password: ********
Retype new UNIX password: ********
passwd: password updated successfully

L’utente deve utilizzare la nuova password al prossimo accesso.

7.5 Posso Disabilitare Temporaneamente un Account Utente?

Risposta:

Sì, è possibile bloccare temporaneamente un account utilizzando usermod.

Blocco di un Account:
sudo usermod -L user1

L’utente non potrà accedere fino a quando non verrà sbloccato.

Sblocco di un Account:
sudo usermod -U user1

7.6 Come Aggiungo un Utente al Gruppo sudo?

Risposta:

Utilizza il comando usermod per concedere privilegi sudo.

Comando di Esempio:
sudo usermod -aG sudo user1

Dopo aver eseguito questo comando, user1 può eseguire comandi con sudo.

7.7 Come Posso Spostare la Directory Home di un Utente?

Risposta:

Utilizza usermod -d per impostare una nuova directory home.

Comando di Esempio:
sudo usermod -d /new/home/path -m user1

7.8 Come Rimuovo Completamente un Utente e i Suoi Dati?

Risposta:

Utilizza deluser o userdel per rimuovere un utente.

Comando di Esempio:
sudo deluser --remove-home user1

In alternativa:

sudo userdel -r user1

Questo eliminerà sia l’account utente che la directory home.

7.9 Come Posso Controllare l’Attività degli Utenti Attivi?

Risposta:

Utilizza il comando w per monitorare gli utenti connessi.

Comando di Esempio:
w
Output di Esempio:
 11:35:25 up 2:15,  2 users,  load average: 0.03, 0.02, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
user1    tty1                      10:05    1:30m  0.10s  0.10s -bash
user2    pts/0    192.168.1.10      11:30    0.00s  0.05s  0.02s sshd

Questo comando aiuta a tracciare l’attività degli utenti e il carico del sistema.

8. Conclusione

La gestione degli utenti in Ubuntu è essenziale per ambienti sia personali che aziendali. Utilizzando i comandi e le tecniche coperte in questa guida, è possibile gestire efficacemente gli account utente, migliorare la sicurezza e ottimizzare l’amministrazione del sistema.

Monitorare regolarmente l’attività degli utenti, gestire i permessi e mantenere aggiornate le impostazioni di sicurezza garantirà un sistema ben mantenuto e sicuro.