Gestione degli utenti Linux tramite riga di comando: una guida completa

Gestione degli utenti Linux tramite riga di comando: una guida completa

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.

Visualizza le informazioni dell'utente

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.

Visualizza le informazioni degli utenti esistenti

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

Guida per l'aggiunta di utenti Linux

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

Crea e verifica l'utente

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.

Configura le impostazioni predefinite per l'utente

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.

Crea utente tramite Adduser

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.

Imposta la password di aggiornamento

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.

Manuale di autenticazione Pam per Linux

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.

Aggiungi utente a un gruppo

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

Elimina utente

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

Visualizza i registri utente

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.

Fonte e immagini

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *