Come gestire e elencare gli utenti su Ubuntu: Guida completa agli account utente, ai permessi e ai comandi

.## 1. Introduzione

Ubuntu è una distribuzione Linux molto diffusa, utilizzata da numerosi utenti, da ambienti personali a sistemi server aziendali. Quando si gestisce un sistema Ubuntu, l’amministrazione degli account utente è fondamentale. In particolare, esaminare l’elenco degli utenti registrati aiuta nella gestione della sicurezza e nell’organizzazione degli account.

Questo articolo spiega come elencare gli utenti su Ubuntu. Copre tutto, dai comandi di base ai metodi per recuperare informazioni dettagliate, risultando utile sia per i principianti sia per gli amministratori esperti.

目次

2. Come controllare l’elenco degli utenti in Ubuntu

In Ubuntu, le informazioni sugli utenti possono essere recuperate facilmente usando file e comandi specifici. I metodi seguenti consentono di verificare l’elenco degli utenti.

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

In Ubuntu, tutte le informazioni sugli utenti sono memorizzate nel file /etc/passwd. Visualizzare questo file permette di verificare tutti gli utenti registrati.

Esempio di comando

cat /etc/passwd

L’esecuzione di questo comando visualizza 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 (:) contenenti le seguenti informazioni:

  1. Nome utente
  2. Password (ora rappresentata come x)
  3. ID utente (UID)
  4. ID gruppo (GID)
  5. Informazioni sull’utente (campo commento)
  6. Directory home
  7. Shell di login predefinita

Poiché questo file include anche gli utenti di sistema, è possibile estrarre solo gli utenti di login regolari usando i metodi descritti di seguito.

2.2 Elencare solo i nomi utente

Per elencare solo i 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 Ricerca di un utente specifico

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

grep 'user1' /etc/passwd

Questo comando visualizza solo la voce relativa a user1.

2.4 Elencare i gruppi tramite /etc/group

Per verificare i gruppi a cui appartiene un utente, fai riferimento al file /etc/group:

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

Per elencare i gruppi a cui appartiene un utente specifico, usa:

groups user1

Esempio di output:

user1 : user1 sudo

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

3. Come controllare gli utenti attualmente connessi

Ubuntu fornisce diversi comandi per verificare quali utenti sono attualmente connessi. Questi comandi aiutano a recuperare informazioni su sessioni e login.

3.1 Verifica degli utenti connessi usando who

Il comando who elenca tutti gli utenti attualmente connessi.

Esempio di comando

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 (utente connesso)
  2. Nome del terminale (es. tty1 per locale, pts/0 per SSH)
  3. Ora di login

Il comando who è semplice e utile quando si desidera controllare rapidamente lo stato di login.

3.2 Verifica delle informazioni dettagliate usando w

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

Esempio di comando

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

  • Uptime del sistema
  • Numero di utenti connessi
  • Media del carico CPU
  • Nome utente
  • Terminale
  • Host remoto
  • Ora di login
  • Tempo di inattività
  • Utilizzo CPU
  • Processo in esecuzione

L’indirizzo IP nel campo FROM aiuta a verificare i login SSH remoti, risultando utile per il monitoraggio e la gestione della sicurezza.

3.3 Visualizzare gli utenti connessi usando users

Se desideri un elenco semplificato che mostri solo i nomi utente degli utenti connessi, il comando users è utile.

Esempio di comando

users

Esempio di output

user1 user2

Questo comando è una versione semplificata di who e mostra solo i nomi utente degli utenti connessi.

3.4 Identifica l’utente corrente con whoami

Per verificare quale utente sta eseguendo la sessione corrente, usa il comando whoami.

Esempio di comando

whoami

Esempio di output

user1

Questo comando visualizza semplicemente il nome utente dell’utente della sessione corrente, risultando utile per verificare il contesto di esecuzione.

3.5 Controlla la cronologia di accesso usando last

Il comando last ti consente di esaminare la cronologia di accesso degli utenti.

Esempio di comando

last

Esempio di output

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)
  • Nome utente
  • Terminale usato
  • Indirizzo IP remoto
  • Ora di inizio accesso
  • Ora di disconnessione (o ancora connesso)
  • Durata totale della sessione

Questo comando aiuta gli amministratori a monitorare gli accessi precedenti e a rilevare accessi sospetti.

4. Come controllare informazioni dettagliate sull’utente

Ubuntu fornisce diversi comandi per recuperare informazioni dettagliate sugli utenti registrati. Esaminare dettagli come UID, appartenenza ai gruppi e shell di login aiuta gli amministratori a gestire i permessi con precisione. Questa sezione spiega i metodi usando id, groups, finger e chage.

4.1 Controlla UID, GID e gruppi usando id

Il comando id visualizza UID (User ID), GID (Group ID) e l’appartenenza ai gruppi dell’utente.

Esempio di comando
id user1
Esempio di output
uid=1001(user1) gid=1001(user1) groups=1001(user1),27(sudo),1002(docker)
  • uid → Identificatore utente
  • gid → Identificatore del gruppo primario
  • groups → Tutti i gruppi a cui l’utente appartiene
Controlla le informazioni dell’utente corrente
id

4.2 Controlla l’appartenenza ai gruppi tramite groups

Il comando groups elenca rapidamente i gruppi a cui un utente appartiene.

Esempio di comando
groups user1
Esempio di output
user1 : user1 sudo docker

groups è utile quando vuoi vedere solo i nomi dei gruppi senza ID dettagliati.

4.3 Recupera i dettagli dell’utente usando finger

Il comando finger fornisce informazioni dettagliate sull’utente, come nome completo, directory di login e tipo di shell.

Comando di installazione
sudo apt install finger
Esempio di comando
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
  • Login → Nome utente
  • Nome → Nome completo (opzionale)
  • Directory → Directory home
  • Shell → Shell predefinita
  • Ultimo login → Ora dell’ultimo login

4.4 Controlla la scadenza della password con chage

Il comando chage consente agli amministratori di esaminare il periodo di scadenza della password e l’ultimo cambiamento della password.

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
  • Ultimo cambio password → Data dell’ultimo cambio della password
  • Password scade → Data di scadenza della password
  • Password inattiva → Durata di inattività prima che la password diventi invalida
  • Account scade → Data di scadenza dell’account
  • Numero minimo di giorni tra i cambi di password
  • Numero massimo di giorni tra i cambi di password
  • Giorni di avviso prima della scadenza della password

Gli amministratori possono utilizzare queste informazioni per applicare le politiche password e migliorare la sicurezza del sistema.

5. Gestire gli utenti in Ubuntu (Aggiungere, Eliminare, Modificare)

Una corretta gestione degli utenti migliora la stabilità e la sicurezza del sistema. Ubuntu fornisce diversi comandi amministrativi come adduser, deluser e usermod. Questa sezione spiega come aggiungere, rimuovere e modificare gli utenti.

5.1 Aggiungere utenti

Ubuntu consente di aggiungere nuovi utenti usando i comandi adduser o useradd.

5.1.1 Comando adduser (Consigliato)

Il comando adduser fornisce un modo interattivo per aggiungere utenti.

sudo adduser newuser

Esempio di prompt 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]
  • Account utente
  • Gruppo dedicato
  • Directory home (/home/newuser)
  • Password per l’accesso
  • Informazioni di base sull’account

5.1.2 Comando useradd (Avanzato)

Il comando useradd è adatto agli script e offre un controllo più fine, ma non configura tutto automaticamente.

sudo useradd -m -s /bin/bash newuser
sudo passwd newuser
  • -m → Crea directory home
  • -s /bin/bash → Imposta la shell di login

Una password deve essere impostata separatamente quando si utilizza questo comando.

5.2 Eliminare utenti

È possibile rimuovere gli utenti usando deluser o userdel.

5.2.1 Comando deluser (Consigliato)

Il comando deluser rimuove un account utente.

sudo deluser newuser
Rimuovi anche la directory home
sudo deluser --remove-home newuser

Questo elimina l’account e la directory /home/newuser.

5.2.2 Comando userdel (Avanzato)

Il comando userdel offre più controllo.

sudo userdel newuser
sudo userdel -r newuser

5.3 Modificare utenti esistenti

Usa il comando usermod per modificare le informazioni degli utenti esistenti.

5.3.1 Cambiare nome utente

sudo usermod -l newname oldname

5.3.2 Cambiare directory home

sudo usermod -d /new/home/path user1
sudo usermod -d /home/newuser -m user1

5.3.3 Modificare l’appartenenza ai gruppi

sudo usermod -aG sudo user1
groups user1

5.3.4 Cambiare password

sudo passwd user1
Enter new UNIX password: ********
Retype new UNIX password: ********
passwd: password updated successfully

6. Scenari pratici per la gestione degli utenti

La gestione degli utenti in Ubuntu va oltre l’elencare e modificare gli account. Comprendere come applicare i comandi in scenari reali è essenziale per mantenere un ambiente sicuro ed efficiente. Questa sezione presenta casi d’uso comuni e come affrontarli.

6.1 Ricerca di utenti che corrispondono a criteri specifici

6.1.1 Visualizzare gli utenti con privilegi di amministratore (sudo)

Per elencare gli utenti con privilegi sudo, usa il comando getent per ispezionare il file /etc/group:

getent group sudo

Esempio di output

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

6.1.2 Visualizzare gli utenti abilitati al login

Il file /etc/passwd include account di sistema. Per estrarre solo gli utenti che possono effettuare il login:

grep '/bin/bash' /etc/passwd

Output di esempio

user1:x:1001:1001::/home/user1:/bin/bash
user2:x:1002:1002::/home/user2:/bin/bash
  • Solo gli utenti con shell come /bin/bash o /bin/sh sono inclusi
  • Gli account di sistema che usano /usr/sbin/nologin o /bin/false sono esclusi

6.1.3 Visualizza Utenti di Sistema (Account Non-Login)

grep -E '/usr/sbin/nologin|/bin/false' /etc/passwd

Output di esempio

daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
syslog:x:104:110::/home/syslog:/bin/false

Questo aiuta gli amministratori a identificare gli account che non dovrebbero essere rimossi accidentalmente.

6.2 Pulizia Periodica degli Utenti Non Utilizzati

6.2.1 Visualizza l’Ultimo Tempo di Login di Tutti gli Utenti

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
  • Mai effettuato login → L’utente non ha mai effettuato login
    sudo deluser user2 --remove-home
    

6.2.2 Verifica l’Ultimo Cambio di Password

sudo chage -l user1
sudo passwd --expire user1

La prossima volta che l’utente effettua il login, sarà richiesto un reset della password per motivi di sicurezza.

6.3 Controlla Utenti Connessi via SSH

who | grep pts

Output di esempio

user1    pts/0        192.168.1.10     11:30

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

6.4 Esporta Tutte le Informazioni Utente in CSV

getent passwd | awk -F: '{print $1 "," $3 "," $4 "," $6}' > users.csv

Esempio users.csv

root,0,0,/root
user1,1001,1001,/home/user1
user2,1002,1002,/home/user2
  • Esporta nome utente, UID, GID e directory home
  • I dati possono essere analizzati usando Excel o fogli di calcolo

7. FAQ

7.1 Posso modificare /etc/passwd direttamente?

Risposta: La modifica diretta non è raccomandata. Modifiche errate potrebbero impedire il login o danneggiare il sistema.

Metodo più sicuro:

sudo vipw

7.2 Differenza Tra i Comandi who e users

CommandDescription
whoDisplays detailed login information
usersDisplays only usernames of logged-in users

7.3 Come Controllare la Storia dei Login per un Utente Specifico

last user1

7.4 Come Cambiare la Password di un Utente

sudo passwd user1

7.5 Come Disabilitare Temporaneamente un Utente

sudo usermod -L user1
sudo usermod -U user1

7.6 Aggiungi un Utente al Gruppo sudo

sudo usermod -aG sudo user1

7.7 Cambia la Directory Home di un Utente

sudo usermod -d /new/home/path -m user1

7.8 Rimuovi Completamente un Utente e i Suoi Dati

sudo deluser --remove-home user1

o

sudo userdel -r user1

7.9 Controlla l’Attività Dettagliata degli Utenti Loggati

w
  • Utenti loggati
  • Indirizzi IP remoti
  • Processi correnti
  • Carico del sistema

Questo permette agli amministratori di monitorare l’utilizzo e rilevare accessi non autorizzati.