Vuoi sapere come cambiare i permessi di file e directory su Linux? In questa guida impareremo a usare il comando chmod che ci permette di impostare i permessi usando la modalità che preferiamo.
Iniziamo dal vedere la sintassi di questo comando e le due modalità: simbolica e numerica. Passeremo poi a vedere numerosi esempi che ci aiuteranno a capire al meglio come funzionano i permessi.
Table of Contents
Sintassi del comando chmod
Il comando chmod sta per “change mode” e serve a modificare i permessi di file e cartelle. Possiamo infatti usare questo comando per definire chi può leggere, scrivere ed eseguire i file.
Finora abbiamo visto come usare alcuni dei comandi principali per lavorare sui file:
Adesso vediamo un altro comando fondamentale di Linux, chmod, che ci permette di gestire i permessi.
La sintassi di base del comando è questa:
chmod [opzioni] [modalità] nome-file
Bisogna quindi specificare il nome del file o della cartella, e scegliere la modalità da usare per impostare i permessi.
Partiamo perciò proprio da questo primo aspetto e vediamo quali sono le due modalità che possiamo usare.
Come funzionano i permessi su Linux
I permessi su Linux ci permettono di regolare tre diverse azioni:
- lettura
- scrittura
- esecuzione.
Queste tre azioni vengono definite per tre tipologie di utente:
- il proprietario del file (owner / user);
- il gruppo di utenti (group);
- tutti gli altri utenti (others).
Tieni presente che ogni file e cartella su Linux è associato a un proprietario e a un gruppo, per modificarli si utilizza il comando chown.
I permessi possono essere definiti con due rappresentazioni diverse:
- simbolica
- ottale (che per semplicità chiameremo numerica).
Si può usare l’una o l’altra modalità in base a come ci viene più comodo.
Iniziamo da quella simbolica.
Come funziona la rappresentazione simbolica dei permessi
Possiamo indicare la tipologia di permessi attraverso dei simboli, o meglio delle lettere, in questo modo:
- r (read) indica il permesso di lettura;
- w (write) quello di scrittura;
- x (execute) l’esecuzione.
Per finire, la presenza di un “-” indica che il permesso non è stato concesso.
Quando verifichiamo i permessi di un file ci vengono mostrati raggruppati in tre triplette, in questo modo:
-rw-r--r--
I permessi seguono sempre lo stesso schema:
- rw- (cioè i primi tre caratteri) rappresentano i permessi del proprietario;
- r– quelli del gruppo
- r– quelli degli altri.
In questo esempio quindi:
- il proprietario ha il permesso di leggere (r) e scrivere (w) il file.
- il gruppo ha solo il permesso di lettura (r);
- tutti gli altri hanno solo il permesso di lettura (r).
Nota che il primo “-” indica che si tratta dei permessi di un file, invece per le cartelle avremmo visto una “d”.
Come funziona la rappresentazione numerica dei permessi
I permessi di lettura, scrittura ed esecuzione dei file possono anche essere rappresentati in forma numerica.
Nello specifico ogni permesso è rappresentato da un numero:
r | 4 |
w | 2 |
x | 1 |
– | 0 |
In forma numerica, i valori della tripletta (esempio: rw-) verranno sommati come in questo esempio:

In questo esempio quindi per dare i seguenti permessi:
- lettura e scrittura al proprietario (6)
- lettura e scrittura al gruppo (6)
- lettura agli altri (4).
Dovremo usare il valore numerico 664.
Se ora non ti è abbastanza chiaro, non preoccuparti, perché vedremo con degli esempi pratici come fare ad assegnare i permessi.
Per il momento, la cosa importante da capire è qual è il nesso tra la rappresentazione simbolica (r,w,x,-) e quella numerica (664, 644, 755).
Casi d’uso del comando chmod
Adesso che abbiamo iniziato a comprendere come funzionano e a cosa servono i permessi su file e cartelle di Linux, possiamo fare un altro passo avanti e vedere nella pratica come modificarli.
Per prima cosa ti spiegherò come verificare i permessi attuali. Poi vedremo come fare a impostare i permessi con entrambe le modalità: simbolica e numerica.
Come verificare i permessi di un file o una cartella
Per controllare quali sono i permessi di un file o una cartella da terminale, possiamo usare questo comando:
ls -l nome-file
Il comando ls
(list) ci permette di mostrare i contenuti di una cartella. Inoltre, se usato con l’opzione l
e il nome di un file ci permette di avere informazioni dettagliate e quindi anche di conoscere i permessi.
In questo esempio con il comando:
ls -l appunti.txt
Possiamo vedere quali sono i permessi di questo file:
-rw-rw-r--

Questo significa che avremo questi permessi:
- utente (in questo esempio “vbox”) lettura e scrittura (rw-);
- gruppo (vbox) lettura e scrittura (rw-);
- altri solo lettura (r–).
Nota che in questo caso prima dei permessi c’è il simbolo “-” per indicare che si tratta di un file. Nel caso di una cartella vedremo una “d”, mentre per i link simbolici vedremo una “l”.
Per vedere i permessi di tutti i file e le cartelle all’interno della cartella corrente possiamo usare il comando:
ls -l
In questo esempio puoi vedere che sono presenti un file e una cartella:
- i permessi del file iniziano con “-“
- quelli delle cartelle iniziano con una “d”.

Nell’esempio qui sopra i permessi per la cartella “Articoli” sono questi:
drwxrwxr-x
Questo significa che:
- il proprietario ha permessi di lettura, scrittura e esecuzione (rwx);
- il gruppo: lettura, scrittura ed esecuzione (rwx);
- gli altri: lettura ed esecuzione (r-x).
Passiamo allo step successivo e vediamo come fare a modificare i permessi.
Come assegnare i permessi (modalità simbolica)
Possiamo modificare i permessi attuali usando la modalità simbolica, cioè sfruttando questi simboli: r, w e x per i tre tipi di permessi.
Per poterlo fare dobbiamo anche conoscere queste altre opzioni per identificare il tipo di utente:
- u per indicare il proprietario del file (user);
- g per il gruppo (group);
- o per tutti gli altri (others);
- a per tutti i precedenti (u,g e o) (all).
Gli operatori che possiamo utilizzare sono:
+
per aggiungere i permessi;-
per rimuoverli;=
per impostare i permessi come specificato di seguito.
Per chiarire bene l’utilizzo di questi operatori, vediamo degli esempi specifici.
Aggiungere i permessi
Vediamo un esempio pratico per l’aggiunta di un permesso.
Abbiamo questo file di partenza, documento.txt, con i seguenti permessi:
-r--r--r--
Vogliamo aggiungere il permesso di scrittura al proprietario, allora useremo il comando chmod in questo modo:
chmod u+w documento.txt
Cosa abbiamo fatto?
Dopo il comando abbiamo specificato il tipo di utente (u per user), usato l’operatore “+” per l’aggiunta del permesso e specificato “w” per il permesso di scrittura.

Prima e dopo del comando chmod, ho utilizzato il comando “ls -l” per verificare che i permessi fossero cambiati correttamente.
A questo punto, posso usare il comando chmod per assegnare permessi anche al gruppo o a tutti gli altri utenti.
Ad esempio per assegnare i permessi di scrittura (w) al gruppo (g), userò questo comando:
chmod g+w documento.txt
Rimuovere i permessi
Possiamo anche usare chmod per rimuovere i permessi. In questo esempio, i permessi iniziali del mio documento sono:
-rw-rw-rw-
In questo caso per rimuovere il permesso di scrittura dal gruppo userò il comando seguente:
chmod g-w documento.txt
Nel dettaglio:
- “g” indica che voglio modificare il permesso del gruppo.
- “-” è l’operatore che ci consente di rimuovere i permessi.
- “w” è il permesso di scrittura.

Aggiornare più permessi con un solo comando
Nota che se vuoi rimuovere (o aggiungere) i permessi da più utenti, ad esempio da “gruppo” e da “altri”, puoi combinare il comando.
Per esempio, abbiamo di nuovo la situazione di partenza del documento, con i seguenti permessi:
-rw-rw-rw-
In questo caso voglio rimuovere i permessi di lettura e di scrittura da “gruppo” (g) e “altri” (o) e lasciare invariati quelli dell’utente (u).
chmod go-rw documento.txt
Con questo comando:
- “go” – stiamo agendo su gruppo (g) e altri (o)
- “-” stiamo rimuovendo i permessi
- “rw” sono i permessi che vengono rimossi.
Quindi stiamo rimuovendo i permessi di lettura e scrittura da gruppo e altri, e i permessi del documento, dopo la modifica, saranno questi:
-rw-------
Puoi vedere l’esempio che riporto qui:

Impostare i permessi
Finora abbiamo visto gli operatori “+” e “-” che ci permettono rispettivamente di aggiungere o rimuovere i permessi.
L’altra alternativa che abbiamo è quella di impostare direttamente i nuovi permessi usando l’operatore “=“.
Per esempio abbiamo il nostro file con i seguenti permessi:
-r--r--r--
Se vogliamo impostare per l’utente i permessi di lettura e scrittura, ci basta usare il comando chmod in questo modo:
chmod u=rw documento.txt
Nel dettaglio:
- con “u” stiamo specificando che vogliamo cambiare i permessi dell’utente;
- usiamo il simbolo “=” per definire i permessi;
- “rw” stiamo impostando i permessi di lettura e scrittura.
Come puoi vedere nell’esempio, con questo comando stiamo cambiando solo i permessi dell’utente, senza modificare quelli del “gruppo” o degli “altri“.

Come assegnare i permessi (modalità numerica)
Un altro metodo per assegnare i permessi è quello di utilizzare la modalità numerica.
Per semplicità possiamo fare riferimento a questa tabella per non dover convertire o ricordare i valori numerici. Abbiamo raccolto le impostazioni più comuni.
Permessi in simboli | Permessi numerici | Spiegazione |
---|---|---|
-rw——- | 600 | L’utente ha il permesso di lettura e scrittura. |
-rw-r–r– | 644 | L’utente ha il permesso di lettura e scrittura. Gruppo e altri: solo lettura. |
-rw-rw-rw- | 666 | Utente, gruppo e altri hanno il permesso di lettura e scrittura. |
-rwx—— | 700 | L’utente ha il permesso di lettura, scrittura ed esecuzione. |
drwx—— | 700 | L’utente ha il permesso di lettura, scrittura ed esecuzione (in una cartella) |
-rwx–x–x | 711 | L’utente ha il permesso di lettura, scrittura ed esecuzione. Gruppo e altri: solo esecuzione. |
-rwxr-xr-x | 755 | L’utente ha il permesso di lettura, scrittura ed esecuzione. Gruppo e altri: lettura ed esecuzione. |
-rwxrwxrwx | 777 | Utente, gruppo e altri (quindi tutti) possono leggere, scrivere ed eseguire. |
Qui è necessaria una breve, ma importante nota: quando impostiamo i permessi dobbiamo sapere che ci possono essere rischi di sicurezza. In particolare i permessi 666 e 777 danno la possibilità a tutti di leggere, scrivere ed eseguire i file e vanno quindi utilizzati con la massima cautela.
Per impostare i permessi con questa modalità ci basta usare il comando seguente:
chmod 644 documento.txt
Questo comando equivale a impostare questi permessi:
-rw-r--r--

Impostare i permessi in modo ricorsivo per le cartelle
Se vogliamo assegnare i permessi a una cartella e a tutto il suo contenuto (file e sottocartelle), possiamo usare l’opzione -R
che ci permette di fare una modifica in modo ricorsivo.
Per esempio per cambiare i permessi della cartella “Articoli”, userò il comando in questo modo:
chmod -R 755 Articoli
Con questo comando stiamo impostando i permessi in questo modo:
- l’utente può leggere, scrivere ed eseguire;
- il gruppo può leggere ed eseguire;
- gli altri possono leggere ed eseguire.
In pratica le modifiche possono essere effettuate solo dall’utente.
Questo equivale ad avere i seguenti permessi:
drwxr-xr-x

Come usare chmod con le opzioni
Come altri comandi Linux, anche chmod
ha delle opzioni che possiamo usare per fare delle operazioni più avanzate.
Un esempio lo abbiamo visto poco fa con l’opzione -R che ci consente di applicare le modifiche ai file all’interno di una cartella.
Adesso vediamo la differenza tra due opzioni:
- c (changes)
- v (verbose).
Queste due opzioni combinate con il comando chmod sono simili:
- l’opzione
-v
ci permette di mostrare un output che ci dice che cosa sta succedendo. - L’opzione
-c
ci mostra l’output solo se c’è stata una modifica.
Vediamo un esempio per capire meglio come funzionano.

In questo esempio ho usato il comando seguente:
chmod -c 664 documento.txt
Visto che i permessi del file sono stati modificati, mi è stato mostrato l’output:
il modo di 'documento.txt' è stato cambiato da 0644 (rw-r--r--) in 0664 (rw-rw-r--)
Successivamente ridando lo stesso comando, non c’è stata più la modifica e quindi non c’è stato un output.
Se, invece, diamo il comando con l’opzione v:
chmod -v 664 documento.txt
Vedremo il seguente messaggio che ci dice che i permessi sono stati mantenuti senza modifiche:
il modo di 'documento.txt' è stato mantenuto pari a 0664 (rw-rw-r--)
Ricapitolando:
- se vogliamo vedere un avviso solo quando ci sono modifiche, possiamo usare l’opzione -c (–changes);
- altrimenti, se vogliamo ricevere avvisi per tutti i file (anche quando restano inalterati), usiamo l’opzione -v (–verbose).
Se vuoi approfondire qualche aspetto più tecnico dell’uso del comando chmod, puoi sempre consultare la pagina del manuale.
Conclusioni
Con il comando chmod possiamo modificare i permessi di file e cartelle direttamente da terminale.
Quando cambiamo i permessi possiamo usare la modalità simbolica o numerica, la prima è più intuitiva ma è più lunga da utilizzare perché richiede di scrivere ogni volta i permessi per esteso. La modalità numerica, invece, all’inizio può sembrare più complessa da comprendere, ma poi diventa più rapida da utilizzare una volta appreso come si fa.
Tu quale modalità preferisci usare per cambiare i permessi? Faccelo sapere in un commento.
Lascia un commento