Gestire i permessi di file e cartelle in Linux è fondamentale per la sicurezza e la stabilità del tuo sistema.
Questa guida pratica di Kwontento ti fornirà una comprensione approfondita dei permessi, dei proprietari e dei gruppi, insieme a comandi essenziali e scenari reali. Imparerai a configurare correttamente le autorizzazioni per proteggere i tuoi dati e garantire il corretto funzionamento delle applicazioni.
Contents
01Introduzione ai Permessi Linux
02Capire la Rappresentazione dei Permessi: Simbolica e Numerica
03Il Comando chmod: Cambiare i Permessi
04Il Comando chown: Cambiare Proprietario e Gruppo
07Avvertenze e Rischi Comuni
08Conclusione: La Chiave della Sicurezza Linux
Introduzione ai Permessi Linux

Nel cuore di ogni sistema operativo basato su Linux risiede un robusto meccanismo di gestione dei permessi, progettato per controllare chi può fare cosa con file e cartelle. Questo sistema è la pietra angolare della sicurezza, prevenendo accessi non autorizzati e garantendo che i processi eseguano solo le operazioni per cui sono stati autorizzati.
Ogni file e cartella in Linux è associato a un proprietario (utente), un gruppo e un set di permessi che definiscono le azioni consentite per il proprietario, i membri del gruppo e tutti gli altri utenti del sistema.
Comprendere a fondo questo sistema è essenziale per la sicurezza e l’integrità di qualsiasi ambiente Linux nel 2026.
Perché i permessi sono così importanti?
Senza un controllo granulare sui permessi, qualsiasi utente o processo potrebbe potenzialmente leggere, modificare o eliminare file critici di sistema, dati sensibili o configurazioni di applicazioni. Questo porterebbe a vulnerabilità di sicurezza, instabilità del sistema e violazioni della privacy.
Ad esempio, un server web che non ha i permessi corretti sui suoi file di configurazione potrebbe essere vulnerabile ad attacchi che permettono la modifica del contenuto del sito o l’esecuzione di codice arbitrario.
Le tre categorie di utenti
I permessi in Linux sono definiti per tre categorie principali di utenti:
- Proprietario (User): L’utente che possiede il file o la directory. Solitamente, è l’utente che ha creato il file.
- Gruppo (Group): Un gruppo di utenti a cui il file o la directory è assegnato. Tutti i membri di questo gruppo condivideranno gli stessi permessi definiti per il gruppo.
- Altri (Others): Tutti gli altri utenti del sistema che non sono né il proprietario né membri del gruppo associato al file.
Questa suddivisione permette un controllo flessibile e granulare, adattabile a diverse esigenze di condivisione e sicurezza all’interno di un ambiente multi-utente.
Capire la Rappresentazione dei Permessi: Simbolica e Numerica

I permessi di file e cartelle in Linux possono essere espressi in due modi principali: la notazione simbolica e la notazione numerica (ottale). Entrambe sono fondamentali per la gestione quotidiana del sistema.
La Notazione Simbolica: rwx
La notazione simbolica utilizza lettere per rappresentare i tre tipi di permessi fondamentali: lettura, scrittura ed esecuzione.
- r (read): Permesso di lettura.
- w (write): Permesso di scrittura.
- x (execute): Permesso di esecuzione.
Quando si visualizzano i permessi di un file con il comando ls -l, si ottiene una stringa di 10 caratteri. Il primo carattere indica il tipo di file (es. - per un file regolare, d per una directory). I successivi nove caratteri sono divisi in tre gruppi da tre, che corrispondono ai permessi per proprietario, gruppo e altri.
Esempio: -rwxr-xr– indica un file regolare con permessi di lettura, scrittura ed esecuzione per il proprietario, lettura ed esecuzione per il gruppo, e solo lettura per gli altri.
La Notazione Numerica (Ottale): 755, 644
La notazione numerica, o ottale, assegna un valore numerico a ciascun permesso:
- r (read) = 4
- w (write) = 2
- x (execute) = 1
- – (nessun permesso) = 0
La somma di questi valori per ogni gruppo (proprietario, gruppo, altri) forma un numero ottale a tre cifre. Ad esempio:
- rwx = 4+2+1 = 7
- rw- = 4+2+0 = 6
- r-x = 4+0+1 = 5
- r– = 4+0+0 = 4
Quindi, -rwxr-xr-- (simbolico) corrisponde a 754 (numerico):
- Proprietario: rwx (7)
- Gruppo: r-x (5)
- Altri: r– (4)
La notazione numerica è spesso preferita negli script e nei comandi per la sua concisione e chiarezza.
Il Comando chmod: Cambiare i Permessi

Il comando chmod (change mode) è lo strumento principale per modificare i permessi di file e directory in Linux. Può essere utilizzato sia con la notazione simbolica che con quella numerica.
Uso di chmod con Notazione Numerica
Questo è l’approccio più comune e diretto. Si specifica un numero ottale a tre cifre (o quattro, se si includono i permessi speciali) seguito dal nome del file o della directory.
Esempio pratico: dare al proprietario tutti i permessi, al gruppo solo lettura ed esecuzione, e agli altri solo lettura.
chmod 754 miofile.txtQui, 7 per il proprietario (rwx), 5 per il gruppo (r-x), e 4 per gli altri (r–).
Uso di chmod con Notazione Simbolica
La notazione simbolica permette di aggiungere (+), rimuovere (-) o impostare esattamente (=) permessi specifici per proprietario (u), gruppo (g), altri (o) o tutti (a).
Aggiungere il permesso di scrittura al gruppo per un file:
chmod g+w miofile.txtRimuovere il permesso di esecuzione da tutti gli altri:
chmod o-x miofile.txtImpostare i permessi esattamente a rwx per il proprietario e r-x per gruppo e altri:
chmod u=rwx,go=rx miofile.txtOpzione Ricorsiva -R
Per applicare i permessi a una directory e a tutti i file e sottocartelle al suo interno, si usa l’opzione -R (ricorsiva).
chmod -R 755 mia_cartella/Questo comando è estremamente potente e deve essere usato con cautela, specialmente su directory di sistema.
Il Comando chown: Cambiare Proprietario e Gruppo

Mentre chmod gestisce i permessi, il comando chown (change owner) è utilizzato per modificare il proprietario (utente) e/o il gruppo di un file o di una directory.
Questo comando è cruciale per la gestione della proprietà dei file, specialmente in ambienti multi-utente o su server.
Cambiare il Proprietario
Per cambiare il proprietario di un file, si usa la sintassi chown nuovo_proprietario file_o_directory. Questo comando richiede privilegi di superutente (root), quindi di solito si usa con sudo.
sudo chown utente_nuovo miofile.txtCambiare il Gruppo
Per cambiare solo il gruppo di un file, si può usare il comando chgrp, oppure chown con la sintassi :nuovo_gruppo.
sudo chown :nuovo_gruppo miofile.txtQuesto esempio cambia solo il gruppo, mantenendo lo stesso proprietario.
Cambiare Proprietario e Gruppo Contemporaneamente
Per cambiare sia il proprietario che il gruppo in un’unica operazione, si usa la sintassi chown nuovo_proprietario:nuovo_gruppo file_o_directory.
sudo chown utente_web:gruppo_web /var/www/html/index.htmlQuesto è un caso d’uso comune per i file serviti da un server web, dove il proprietario e il gruppo devono corrispondere all’utente sotto cui il server web è in esecuzione (es. www-data su Debian/Ubuntu).
Opzione Ricorsiva -R
Come per chmod, l’opzione -R applica le modifiche ricorsivamente a tutti i contenuti di una directory.
sudo chown -R utente_dev:gruppo_dev /progetti/nuovo_progettoPermessi Speciali: SUID, SGID e Sticky Bit

Oltre ai permessi standard di lettura, scrittura ed esecuzione, Linux offre tre permessi speciali che aggiungono ulteriori livelli di controllo e funzionalità: SUID, SGID e Sticky Bit. Questi permessi sono rappresentati da una cifra ottale iniziale aggiuntiva (0-7) prima delle tre cifre standard.
Comprendere i permessi speciali è cruciale per la gestione avanzata della sicurezza e per risolvere problemi legati all’esecuzione di programmi.
SUID (Set User ID – Valore 4)
Quando il bit SUID è impostato su un file eseguibile, qualsiasi utente che esegue quel file lo farà con i privilegi del proprietario del file, anziché con i propri privilegi. Il bit SUID appare come una s minuscola nel campo dei permessi del proprietario (rws) se il permesso di esecuzione è già presente, o una S maiuscola (rwS) se il permesso di esecuzione non è presente.
Un esempio classico è il comando passwd, che permette agli utenti di cambiare la propria password. Per fare ciò, il programma deve scrivere nel file /etc/shadow, che è di proprietà di root e ha permessi ristretti. Grazie al SUID, passwd viene eseguito con i privilegi di root, consentendo la modifica.
# Impostare SUID per un eseguibile
chmod 4755 /usr/bin/programma_sensibile
# Visualizzare i permessi (dovrebbe mostrare 'rws')
ls -l /usr/bin/programma_sensibileL’uso di SUID è una potenziale vulnerabilità se non gestito correttamente, poiché un programma con SUID può essere sfruttato per ottenere privilegi elevati.
SGID (Set Group ID – Valore 2)
Il bit SGID ha due funzioni principali:
- Su file eseguibili: Simile a SUID, fa sì che il programma venga eseguito con i privilegi del gruppo proprietario del file. Appare come
snel campo dei permessi del gruppo (rws) oSse senza permesso di esecuzione. - Su directory: Tutti i nuovi file e sottocartelle create all’interno di quella directory erediteranno il gruppo della directory stessa, anziché il gruppo primario dell’utente che li crea. Questo è estremamente utile per la gestione di directory condivise.
Esempio di SGID su una directory condivisa:
# Creare una directory e impostare il gruppo
sudo mkdir /dati_condivisi
sudo chgrp team_dev /dati_condivisi
# Impostare SGID e permessi appropriati
sudo chmod 2775 /dati_condivisi
# Verificare i permessi (dovrebbe mostrare 'rws' per il gruppo)
ls -ld /dati_condivisiOra, qualsiasi file creato in /dati_condivisi avrà automaticamente team_dev come gruppo, facilitando la collaborazione.
Sticky Bit (Valore 1)
Il Sticky Bit è rilevante solo per le directory. Quando impostato su una directory, impedisce agli utenti di eliminare o rinominare file all’interno di quella directory, a meno che non siano il proprietario del file, il proprietario della directory o l’utente root. Appare come una t minuscola nel campo dei permessi degli altri (rwt) o T maiuscola se senza permesso di esecuzione.
L’esempio più comune è la directory /tmp, dove tutti gli utenti possono creare file, ma non possono eliminare i file degli altri.
# Impostare Sticky Bit per una directory
sudo chmod 1777 /var/tmp
# Verificare i permessi (dovrebbe mostrare 'rwt' per gli altri)
ls -ld /var/tmpQuesto è fondamentale per le directory temporanee condivise, dove la pulizia dei propri file è consentita, ma non quella dei file di altri utenti.
Casi d’Uso Pratici e Best Practice
La teoria dietro i permessi Linux è importante, ma la sua applicazione pratica è ciò che veramente conta per un sistema sicuro ed efficiente. Vediamo alcuni scenari comuni e le migliori pratiche da adottare.
Permessi per File Regolari
Per la maggior parte dei file di testo, documenti o immagini che non devono essere eseguiti come programmi, i permessi standard sono 644 (rw-r--r--). Questo significa che il proprietario può leggere e scrivere, il gruppo e gli altri possono solo leggere.
chmod 644 mio_documento.pdfQuesta è una configurazione sicura per file che non richiedono esecuzione o modifiche da parte di altri utenti.
Permessi per Eseguibili e Script
Per gli script o i programmi eseguibili, è necessario il permesso di esecuzione (x). Una configurazione comune è 755 (rwxr-xr-x), che consente al proprietario di leggere, scrivere ed eseguire, mentre il gruppo e gli altri possono solo leggere ed eseguire.
chmod 755 mio_script.shPer script personali che non devono essere eseguiti da altri, si può usare 700 (rwx------).