Gestione degli Utenti e dei Gruppi su Linux da Linea di Comando
Introduzione
Nei sistemi operativi Linux, gli utenti e i gruppi sono due elementi fondamentali per la gestione dei permessi e la sicurezza del sistema. Ogni file, directory e risorsa del sistema ha dei permessi associati, che definiscono chi può accedere, modificare o eseguire quel file. Questi permessi sono basati su un sistema di utenti e gruppi, dove ogni utente ha un proprio identificatore (UID) e può appartenere a uno o più gruppi (identificati con un GID, Group ID).
- Utente: Un utente rappresenta una singola identità sul sistema, con un suo UID, una home directory e una shell.
- Gruppo: Un gruppo è un insieme di utenti, che condividono permessi per accedere a determinate risorse del sistema.
Vediamo ora come visualizzare gli utenti e i gruppi presenti nel sistema, e come creare, modificare e rimuovere utenti e gruppi usando comandi da linea di comando.
Visualizzare gli Utenti e i Gruppi
Visualizzare la Lista degli Utenti
In Linux, gli utenti sono definiti nel file /etc/passwd
. Possiamo visualizzare l’elenco degli utenti registrati leggendo questo file.
cat /etc/passwd
Questo comando mostrerà una lista con informazioni dettagliate sugli utenti. Ogni linea rappresenta un utente e contiene informazioni come il nome utente, l’UID, la directory home e la shell predefinita. Se si vuole visualizzare solo i nomi degli utenti, possiamo usare:
cut -d: -f1 /etc/passwd
Visualizzare la Lista dei Gruppi
I gruppi sono definiti nel file /etc/group
. Per visualizzare la lista dei gruppi presenti sul sistema, possiamo utilizzare:
cat /etc/group
Per visualizzare solo i nomi dei gruppi, possiamo estrarre il primo campo di ogni riga:
cut -d: -f1 /etc/group
Gestione degli Utenti
1. Creazione di un Utente
Per creare un nuovo utente, utilizziamo il comando useradd
, specificando alcune opzioni.
sudo useradd -m -s /bin/bash -d /home/nuovo_utente nuovo_utente
Spiegazione degli argomenti:
-m
: Crea automaticamente la directory home dell’utente.-s /bin/bash
: Imposta la shell di login dell’utente (qui impostata a Bash).-d /home/nuovo_utente
: Specifica la directory home dell’utente.nuovo_utente
: Nome del nuovo utente.
Dopo aver creato l’utente, dobbiamo impostare una password:
sudo passwd nuovo_utente
2. Modifica di un Utente
Per modificare le informazioni di un utente già esistente, possiamo usare il comando usermod
.
Esempio: Cambiare la shell di login dell’utente
sudo usermod -s /bin/zsh nuovo_utente
Esempio: Cambiare la home directory dell’utente
sudo usermod -d /home/nuova_home -m nuovo_utente
-d /home/nuova_home
: Imposta una nuova home directory.-m
: Sposta i file dalla vecchia home directory alla nuova.
3. Rimozione di un Utente
Per rimuovere un utente, utilizziamo userdel
.
sudo userdel -r nuovo_utente
-r
: Rimuove anche la directory home dell’utente e i file associati.
Gestione dei Gruppi
1. Creazione di un Gruppo
Per creare un nuovo gruppo, utilizziamo il comando groupadd
.
sudo groupadd nuovo_gruppo
2. Modifica di un Gruppo
Per modificare un gruppo, possiamo usare groupmod
.
Esempio: Cambiare il nome del gruppo
sudo groupmod -n nuovo_nome_gruppo vecchio_gruppo
-n nuovo_nome_gruppo
: Specifica il nuovo nome per il gruppo.
3. Rimozione di un Gruppo
Per rimuovere un gruppo, utilizziamo il comando groupdel
.
sudo groupdel nuovo_gruppo
Assegnazione e Rimozione di un Utente da un Gruppo
Aggiungere un utente a un gruppo
Per aggiungere un utente a un gruppo esistente, utilizziamo il comando usermod
con l’opzione -aG
.
sudo usermod -aG nuovo_gruppo nuovo_utente
-aG
: Aggiunge l’utente a un gruppo senza rimuoverlo dagli altri gruppi.
Rimuovere un utente da un gruppo
Per rimuovere un utente da un gruppo, dobbiamo modificare il file /etc/group
oppure usare il comando gpasswd
.
sudo gpasswd -d nuovo_utente nuovo_gruppo
Esempi di Utilizzo Completi
Creare un nuovo utente con una home directory personalizzata e una shell differente
sudo useradd -m -s /bin/zsh -d /home/esempio utente_esempio sudo passwd utente_esempio
Aggiungere l’utente a un gruppo esistente e poi rimuoverlo
sudo usermod -aG sudo utente_esempio sudo gpasswd -d utente_esempio sudo
Creare un gruppo e assegnare più utenti
sudo groupadd sviluppatori sudo usermod -aG sviluppatori utente_esempio sudo usermod -aG sviluppatori altro_utente
Linkografia Essenziale
- Documentazione ufficiale Linux su
useradd
- Documentazione ufficiale Linux su
usermod
- Documentazione ufficiale Linux su
groupadd
- Linux File Permissions
- User and Group Management