La gestione degli utenti è un aspetto fondamentale per qualsiasi amministratore di sistemi Linux. Che si tratti di gestire una singola macchina o una rete di server, mantenere l’ordine tra gli account utente è vitale per il controllo e la sicurezza del sistema. Una gestione corretta garantisce che l’accesso sia concesso solo a chi ne ha effettivamente bisogno e solo per il tempo strettamente necessario. Privilegi illimitati possono portare a potenziali violazioni di dati sensibili o risorse critiche. In questo articolo, analizzeremo gli strumenti essenziali da riga di comando che consentono agli amministratori di creare, modificare e rimuovere account utente direttamente dal terminale.
File essenziali per la gestione degli utenti su Linux
Linux memorizza le informazioni critiche relative a utenti e gruppi in specifici file di sistema. Questi file contengono dettagli sugli account, dati sulle password e permessi di gruppo, fungendo da base per la gestione degli utenti e il controllo degli accessi.
| File / Directory | Descrizione |
|---|---|
| /etc/passwd | Contiene UID, GID, directory home e shell predefinita. Leggibile da tutti, modificabile solo da root/sudo. |
| /etc/group | Elenca i nomi dei gruppi, i GID e i membri, informazioni essenziali per la gestione delle appartenenze ai gruppi e delle autorizzazioni. |
| /etc/sudoers | Specifica quali utenti/gruppi possono eseguire comandi come root. Richiede un’attenta revisione. |
| /etc/shadow | Contiene gli hash delle password e le informazioni sulla loro scadenza. L’accesso è limitato al solo utente root. |
| /etc/gshadow | Contiene i dettagli della password di gruppo e le informazioni sulla scadenza, accessibili solo dall’utente root. |
| /etc/skel | File come “.bashrc” e “.profile” vengono copiati automaticamente nelle directory home dei nuovi utenti. |
| /etc/login.defs | Consente di configurare le impostazioni relative alla scadenza e all’invecchiamento delle password, nonché diverse politiche di sicurezza. |
Come visualizzare gli utenti esistenti
Un metodo semplice per verificare gli utenti esistenti su un sistema Linux consiste nell’esaminare il file “/etc/passwd”, che contiene informazioni essenziali sugli account utente. Per visualizzare questo file, eseguire:
sudo cat /etc/passwd
Ogni riga del file corrisponde a un account utente univoco.

Il idcomando fornisce i gruppi UID, GID, e tutti i gruppi a cui appartiene l’utente:
id usernamegroups usernamegetent passwd username
In alternativa, il groupscomando mostra solo i gruppi associati a un utente. Il getentcomando recupera i dettagli dell’account dai database di sistema, inclusi “/etc/passwd”, LDAP o altre fonti configurate.

Utilizzo del comando useradd per creare utenti
Il useraddcomando è un’utilità fondamentale disponibile nella maggior parte delle distribuzioni, ma è generalmente considerato meno intuitivo rispetto a adduser. Nonostante le differenze, entrambi i comandi svolgono funzioni simili.
Per saperne di più sul useraddcomando, usa il mancomando o aggiungi --helpper una breve guida:
man useradd--help

Per creare un nuovo utente e una directory home, è possibile utilizzare il seguente comando:
sudo useradd --create-home
Se ometti questa --create-homeopzione, l’account utente non avrà una directory personale. Dopo aver creato l’utente, verifica la sua esistenza eseguendo il comando grep:
grep /etc/passwd

Creazione di utenti con il comando adduser
A differenza di useradd, il addusercomando è uno script Perl che fornisce un’esperienza interattiva di creazione utente, richiedendo, tra le altre cose, la password e i dettagli della directory home. In molte distribuzioni come Red Hat e CentOS, adduserfunge da collegamento simbolico a useradd. Tuttavia, su altri sistemi come Arch Linux, un pacchetto separato potrebbe includere adduser.
Quando viene richiamato, questo comando genera in genere un gruppo con lo stesso nome dell’utente. Le impostazioni predefinite per gli utenti creati tramite questo comando useraddpossono essere modificate nel file “/etc/default/useradd”, dove è possibile predefinire attributi come la shell predefinita e la directory home.

Per creare un nuovo utente, eseguire il seguente comando:
sudo adduser testuser
Ti verrà richiesto di impostare e confermare una password, fornire ulteriori informazioni utente e finalizzare la creazione dell’account.

Aggiornamento delle password utente
Una volta creato un account utente, è possibile modificarne la password utilizzando un passwdcomando simile a questo:
sudo passwd
L’esecuzione di questo comando ti chiederà di inserire e confermare una nuova password. Gli utenti normali possono cambiare la password solo se eseguono il comando senza sudo.

I requisiti di complessità delle password sono imposti da PAM (Pluggable Authentication Modules) e possono essere generalmente configurati nel file “/etc/pam.d/common-password” sui sistemi Ubuntu. Per ulteriori informazioni, consultare il manuale di pam-auth-update.

Utilizzo del comando usermod per la gestione degli utenti
Il usermodcomando fornisce un meccanismo per modificare gli attributi degli account utente esistenti. Ciò include l’aggiornamento degli ID utente, dei nomi di accesso, delle directory home o dell’appartenenza ai gruppi. Ad esempio, per modificare l’UID di un utente, utilizzare:
sudo usermod -u
Una modifica all’UID o al GID potrebbe influire sulla proprietà dei file e sui permessi di accesso a livello di sistema.
Per modificare la directory home di un utente, utilizzare la seguente procedura:
sudo usermod -d
Inoltre, è possibile bloccare o sbloccare gli account utente con i seguenti comandi:
sudo usermod -L sudo usermod -U
Infine, è possibile impostare una data di scadenza dell’account con l’ --expiredateopzione:
sudo usermod --expiredate
Queste modifiche consentono di gestire efficacemente l’accesso e gli attributi degli utenti senza dover eliminare l’account.
Integrazione degli utenti nei gruppi
I gruppi facilitano la condivisione delle autorizzazioni tra più utenti, il che è particolarmente utile per la gestione dei file, l’esecuzione di servizi o lo svolgimento collettivo di attività amministrative.
Per integrare un utente in un gruppo specifico, utilizzare il seguente usermodcomando con le opzioni -ae :-G
sudo usermod -a -G
Il -aflag è fondamentale in quanto aggiunge l’utente ai gruppi esistenti; ometterlo potrebbe comportare la sovrascrittura delle appartenenze ai gruppi attuali.

In alternativa, il gpasswdcomando può anche gestire l’appartenenza ai gruppi:
sudo gpasswd -a username groupname
Per rimuovere un utente da un gruppo, eseguire:
sudo gpasswd -d username groupname
Eliminazione degli account utente
Quando un account utente non è più necessario, può essere rimosso utilizzando il userdelcomando:
sudo userdel username

Questo comando elimina l’account utente ma conserva la directory home dell’utente. Per la rimozione completa, inclusa la directory home, utilizzare:
sudo userdel -r username
Tieni presente che userdelnon verrà eseguito se sono in esecuzione processi attivi con l’account utente.
Monitoraggio delle attività di accesso degli utenti
Il monitoraggio delle attività di accesso è essenziale per gli amministratori di sistema al fine di identificare i tentativi di accesso non autorizzati e risolvere i problemi di autenticazione. Nei sistemi Ubuntu e Debian, i tentativi di accesso vengono registrati nel file “/var/log/auth.log”.Per controllare le voci più recenti, utilizzare:
sudo tail /var/log/auth.log

Per i sistemi Red Hat o CentOS, è possibile trovare i record di accesso in “/var/log/secure”.Inoltre, i sistemi che utilizzano systemd potrebbero offrire un altro metodo per visualizzare i log di autenticazione con:
sudo journalctl | grep ssh
Questo approccio proattivo alla gestione degli account utente mantiene il sistema organizzato e protegge dagli accessi non autorizzati.
Lascia un commento