Comandi Linux · 5 min read · Sep 14, 2025
Tutorial sul comando Linux chmod per principianti

Il comando Linux chmod viene utilizzato per modificare i permessi di file e directory in un sistema operativo basato su Linux. Consente agli utenti di definire chi può leggere, scrivere o eseguire un file modificando le impostazioni dei permessi. I permessi sono generalmente assegnati a tre categorie: il proprietario del file, il gruppo a cui appartiene il file e altri (tutti gli altri). Il comando chmod può essere utilizzato con notazione simbolica (ad esempio, chmod u+x nomefile per aggiungere il permesso di esecuzione per l’utente) o notazione numerica (ad esempio, chmod 755 nomefile per impostare permessi specifici di lettura, scrittura ed esecuzione per ciascuna categoria). Questo comando è essenziale per gestire il controllo degli accessi su un sistema, garantendo che file e directory abbiano le impostazioni di sicurezza appropriate.
Si prega di notare che tutti gli esempi e le istruzioni menzionati in questo tutorial sono stati testati su Ubuntu 24.04, e la versione di chmod che abbiamo utilizzato è 8.25.
Nozioni di base su Chmod
Considera il seguente esempio del comando ls:

La prima colonna nell’output è di nostro interesse. Lascia da parte il primo ‘-‘ (che indica il tipo di file). I campi rimanenti nella colonna possono essere ulteriormente suddivisi in: rw-, rw- e r–. Questi sono i permessi che il proprietario del file, il gruppo a cui appartiene il file e gli altri hanno riguardo a questo file.
Ciò significa che il proprietario ha sia i permessi di lettura (r) che di scrittura (w), così come il gruppo. Gli altri, tuttavia, hanno solo i permessi di lettura per il file. Si prega di notare che stiamo assumendo che l’utente attuale possieda il file.
Ora, supponiamo che la richiesta sia di dare a tutti il diritto di eseguire questo file. Ecco come può essere fatto:
chmod +x script.shEcco i permessi ora:

L’extra ‘x’ nei permessi per il proprietario, il gruppo e gli altri indica che ora tutti hanno accesso all’esecuzione per questo file.
Tuttavia, molto probabilmente, potresti non voler che tutti abbiano accesso all’esecuzione per un file. E se la richiesta fosse di concedere solo al proprietario/utente attuale l’accesso all’esecuzione a script.sh.
Bene, per questo, il primo passo ora sarebbe quello di riprendere l’accesso all’esecuzione da tutti, qualcosa che puoi fare utilizzando il seguente comando:
chmod -x script.shE poi concederlo esplicitamente al proprietario:
chmod u+x script.shCome avresti indovinato, ‘u+x’ dice di concedere (+) al proprietario/utente attuale (u) l’accesso all’esecuzione (x) al file. Allo stesso modo, per il gruppo, puoi usare ‘g’ e per gli altri puoi usare ‘o’.
Si prega di notare che ogni volta che si desidera concedere/revocare un insieme comune di permessi a/da tutti, è possibile utilizzare ‘a’ invece di ‘ugo’. Ciò che intendo è questo:
chmod ugo-x script.shpuò essere sostituito da questo:
chmod a-x script.shInoltre, ricorda che se nessuno di questi (‘u’, ‘g’, ‘o’ e ‘a’) è specificato esplicitamente, allora anche il predefinito è considerato ‘a’.
Proseguendo, se vuoi, puoi anche semplicemente copiare i permessi concessi a, diciamo, il proprietario/utente attuale e averli per il gruppo o per gli altri. Per questo usa il segno ‘=’.
Ad esempio, per copiare i permessi del proprietario/utente al gruppo, usa il seguente comando:
chmod g=u script.shUn altro scenario potrebbe essere quello di copiare i permessi per un file particolare e averli per il tuo file. Per questo, usa l’opzione della riga di comando –reference. Ecco il modello generale per utilizzare questa opzione della riga di comando:
chmod --reference=[file-sorgente] [file-destinazione]Nel comando sopra, file-sorgente è il file di cui vuoi copiare i bit di permesso, e file-destinazione è il file di cui vuoi cambiare i bit di permesso.
Proseguendo ulteriormente, c’è anche una notazione numerica (nota anche come rappresentazione ottale) con cui puoi dire a chmod di cambiare i permessi. Ci sono tre numeri con cui puoi giocare in questo modo: 4, 2 e 1. Mentre 4 è per la lettura, gli altri due sono per la scrittura e l’esecuzione, rispettivamente.
Ad esempio, considera il seguente esempio:

Ora, supponiamo che il compito sia di aggiungere il permesso di esecuzione per il proprietario/utente, rimuovere il permesso di scrittura ma aggiungere il permesso di esecuzione al gruppo, e rimuovere tutti i permessi dagli altri. Questo può essere fatto come segue:
chmod 750 script.shNel comando sopra, ‘7’ è per l’utente, che è il risultato di 4+2+1 poiché la richiesta per l’utente è di avere tutti i permessi. Allo stesso modo, ‘5’ è per il gruppo, che è il risultato di 4+0+1 poiché la richiesta è di dare solo permessi di lettura ed esecuzione al gruppo. Infine, ‘0’ è per gli altri, che è il risultato di 0+0+0, poiché la richiesta è di revocare tutti i permessi dagli altri.
Per coloro che si occupano di collegamenti simbolici, ecco qualcosa di utile da sapere:
chmod non cambia mai i permessi dei collegamenti simbolici; la chiamata di sistema chmod non può cambiare i loro permessi. Questo non è un problema poiché i permessi dei collegamenti simbolici non vengono mai utilizzati. Tuttavia, per ogni collegamento simbolico elencato nella riga di comando, chmod cambia i permessi del file a cui punta. Al contrario, chmod ignora i collegamenti simbolici incontrati durante le traversate ricorsive delle directory.Riferimento della riga di comando
Il comando chmod in Linux ha diverse opzioni della riga di comando che ne modificano il comportamento. Ecco un elenco delle opzioni più comunemente utilizzate:
- -R, –recursive: Questa opzione applica le modifiche ai permessi in modo ricorsivo a tutti i file e directory all’interno della directory specificata. È utile quando si desidera cambiare i permessi di una directory e di tutti i suoi contenuti in un colpo solo.
Esempio: chmod -R 755 /percorso/alla/directory
- -c, –changes: Questa opzione riporta solo quando viene effettuata una modifica. Se i permessi vengono modificati con successo, restituisce un messaggio che indica la modifica.
Esempio: chmod -c 644 nomefile
- -v, –verbose: Questa opzione fornisce informazioni dettagliate su ogni file elaborato, che i permessi siano stati cambiati o meno.
Esempio: chmod -v 755 nomefile
- -reference=RFILE: Invece di specificare i permessi direttamente, questa opzione consente di impostare i permessi di un file o directory per corrispondere a un altro file o directory (RFILE).
Esempio: chmod –reference=file1 file2
- -f, –silent, –quiet: Questa opzione sopprime la maggior parte dei messaggi di errore, facendo sì che il comando venga eseguito senza visualizzare output per gli errori.
Esempio: chmod -f 755 nomefile
Queste opzioni consentono a chmod di essere utilizzato in modo flessibile in vari scenari, da regolazioni di file singoli a cambiamenti di permessi su larga scala delle directory.
Conclusione
Qui, in questo tutorial, abbiamo discusso la maggior parte delle nozioni di base relative a questo strumento, e gli esempi che abbiamo discusso mirano a rendere chiare quelle basi.
Si prega di notare che la nostra discussione si è principalmente concentrata sui file. Dovresti tenere a mente alcuni dettagli mentre usi chmod con le directory. Per tutte quelle informazioni (così come ulteriori dettagli su chmod), vai alla pagina man dello strumento.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.