Come gestire utenti e permessi in Linux

Pubblicato il 16 Ottobre 2025 • Categoria: Linux

La gestione degli utenti e dei permessi è un aspetto fondamentale per la sicurezza e l'organizzazione di un sistema Linux. A differenza di sistemi operativi come Windows, Linux è progettato fin dall'inizio per essere un sistema multi-utente, dove ogni utente ha un proprio spazio e privilegi specifici. In questa guida, scoprirai come creare, modificare ed eliminare utenti e gruppi, e come funziona il sistema di permessi POSIX per controllare l'accesso ai file e alle directory.

1. Introduzione al sistema utenti e permessi

In Linux, ogni processo e file appartiene a un utente e a un gruppo. I permessi determinano cosa un utente specifico o un gruppo può fare con un file o una directory. Questo sistema è essenziale per mantenere la stabilità e la sicurezza del sistema, impedendo ad utenti non autorizzati di modificare file di sistema critici o di accedere ai dati di altri utenti.

2. Tipi di utenti

Esistono tre tipi principali di utenti in Linux:

3. Gruppi

I gruppi sono un modo per organizzare gli utenti. Un utente può appartenere a uno o più gruppi. I permessi di un file possono essere impostati in modo da consentire l'accesso a tutti i membri di un gruppo specifico. Questo semplifica la gestione dei permessi per file e directory condivise.

4. Comandi principali per la gestione degli utenti

Visualizzare gli utenti

Per vedere tutti gli utenti del sistema, puoi leggere il file /etc/passwd:

cat /etc/passwd

Per vedere l'utente corrente:

whoami

Per vedere tutti gli utenti attualmente loggati:

who

Creare un nuovo utente

Il comando principale per creare un nuovo utente è useradd. Per creare un utente completo (con home directory e shell predefinita), usa:

sudo useradd -m -s /bin/bash nomeutente

Dove:

Successivamente, imposta una password per il nuovo utente:

sudo passwd nomeutente

Modificare un utente

Per modificare le proprietà di un utente esistente, usa il comando usermod. Esempi:

Cambiare la shell:

sudo usermod -s /bin/zsh nomeutente

Cambiare la directory home (e spostare i file esistenti):

sudo usermod -d /percorso/nuova/home -m nomeutente

Eliminare un utente

Per rimuovere un utente senza cancellare la sua home directory:

sudo userdel nomeutente

Per rimuovere un utente e anche la sua directory home:

sudo userdel -r nomeutente

5. Comandi principali per la gestione dei gruppi

Visualizzare i gruppi

Per vedere tutti i gruppi del sistema:

cat /etc/group

Per vedere i gruppi a cui appartiene l'utente corrente:

groups

Per vedere i gruppi di un altro utente:

groups nomeutente

Creare un nuovo gruppo

Per creare un nuovo gruppo:

sudo groupadd nomegruppo

Aggiungere un utente a un gruppo

Per aggiungere un utente a un gruppo (senza rimuoverlo dagli altri gruppi):

sudo usermod -aG nomegruppo nomeutente

Il flag -aG sta per "append Group".

Rimuovere un utente da un gruppo

Questo comando rimuove un utente da un gruppo specifico:

sudo gpasswd -d nomeutente nomegruppo

Eliminare un gruppo

Per rimuovere un gruppo:

sudo groupdel nomegruppo

Attenzione: Il gruppo deve essere vuoto per poter essere eliminato.

6. Il sistema di permessi POSIX

Il sistema di permessi POSIX è il metodo standard utilizzato da Linux per controllare l'accesso ai file e alle directory. Ogni file e directory ha tre categorie di utenti e tre tipi di permessi.

Categorie di utenti

Tipi di permessi

Visualizzare i permessi

Usa il comando ls -l per vedere i permessi di un file o una directory:

-rw-r--r-- 1 utente gruppo 1024 ott 16 10:00 documento.txt

La stringa -rw-r--r-- rappresenta i permessi. La prima lettera indica il tipo di file (- per file, d per directory). Le successive 9 lettere sono divise in 3 gruppi di 3:

Carattere Significato
r Permesso di lettura
w Permesso di scrittura
x Permesso di esecuzione
- Permesso non concesso

Modificare i permessi con chmod

Il comando chmod serve per modificare i permessi. Esistono due modi principali: il metodo simbolico e il metodo numerico.

Metodo Simbolico

La sintassi generale è: chmod [chi][operatore][permesso] file

Esempi:

Dare il permesso di esecuzione al proprietario:

chmod u+x script.sh

Rimuovere il permesso di scrittura al gruppo:

chmod g-w documento.txt

Dare il permesso di lettura a tutti:

chmod a+r documento.txt

Metodo Numerico (Ottale)

In questo metodo, ogni permesso ha un valore numerico:

I permessi per Owner, Group e Others sono sommati e rappresentati da un numero a tre cifre.

Permesso Simbolico Numerico
Lettura e scrittura rw- 6
Lettura ed esecuzione r-x 5
Lettura, scrittura ed esecuzione rwx 7
Solo lettura r-- 4

Esempio: Impostare i permessi a rwx per il proprietario, rx per il gruppo e rx per gli altri (risultato: rwxr-xr-x)

chmod 755 script.sh

Modificare il proprietario e il gruppo con chown e chgrp

Per cambiare il proprietario di un file:

sudo chown nuovo_proprietario file

Per cambiare il gruppo:

sudo chgrp nuovo_gruppo file

Per cambiare entrambi in un colpo solo:

sudo chown nuovo_proprietario:nuovo_gruppo file

7. Comprendere SUID, SGID e Sticky Bit

Oltre ai permessi standard, esistono tre bit speciali che possono essere applicati ai file e alle directory:

⚠️ ATTENZIONE: I bit SUID e SGID possono rappresentare un rischio per la sicurezza se applicati a file eseguibili non sicuri. Usali con molta cautela.

8. Esempi pratici e consigli

✅ Esempi comuni:
  • Condividere una cartella tra due utenti: Crea un nuovo gruppo (es. progetto), aggiungi entrambi gli utenti a quel gruppo, crea la cartella, cambia il gruppo proprietario della cartella a progetto (chgrp progetto /percorso/cartella) e imposta i permessi a 775 (chmod 775 /percorso/cartella) per permettere lettura e scrittura al proprietario e al gruppo, e sola lettura agli altri.
  • Rendere eseguibile uno script: chmod +x mio_script.sh.
  • Proteggere un file sensibile: chmod 600 file_privato.conf (solo il proprietario può leggere e scrivere).

Padroneggiare la gestione degli utenti e dei permessi in Linux è essenziale per chiunque voglia utilizzare o amministrare un sistema in modo sicuro ed efficiente. Questo sistema offre un controllo granulare e potente, fondamentale per la filosofia di sicurezza di Linux.

Potrebbe interessarti anche...

Prodotti utili per ottimizzare e mantenere al meglio il tuo sistema.