In ambiente Linux, i permessi di accesso a un file o una directory sono assegnati a tre categorie di utenti:
- Il proprietario (owner). E’ solitamente l’utente che ha creato quel file/directory. Ha il controllo principale su di esso e può modificarne i permessi.
- Gli utenti del gruppo (group) a cui appartiene il file/directory. Un file/directory appartiene a un solo gruppo di utenti e tutti gli utenti che fanno parte di quel gruppo hanno gli stessi permessi su quel file/directory.
- tutti gli altri utenti (others).
Per modificare:
- l’owner di un file/directory si utilizza il comando
chown(contrazione di change owner) - il gruppo a cui appartiene un file/directory si utilizza il comando
chgrp(contrazione di change group) - i permessi di accesso al file/directory si utilizza il comando chmod (contrazione di change mode, ovvero cambia modalità di accesso)
Visualizzare il proprietario, il gruppo e i permessi di un file o una directory
Per visualizzare il proprietario e il gruppo a cui è assegnato un file o una directory, nonché i relativi permessi di accesso, eseguire da bash il comando ls -l :
ls -l nomefile
Esempio 1 – visualizzare i permessi sul file start_xampp.sh:
alberto@lamp:~/Scrivania$ ls -l start_xampp.sh
-rwxr-xr-- 1 alberto dip 171 ott 26 2018 start_xampp.sh
alberto@lamp:~/Scrivania$
Spiegazione dell’output del comando ls -l
- I primi 10 caratteri (
-rwxr-xr--) rapresentano il tipo di file e i permessi di accesso al file; 1è il numero di hard link che puntano al file (esce dall’ambito di questo post);albertoè l’utente proprietario del file;dipè il gruppo a cui appartiene il file;171è la dimensione del file in byte;ott 26 2018è la data dell’ultima modifica;start_xampp.shè il nome del file.
Spiegazione dei permessi
il primo carattere (- nell’esempio) indica indica il tipo di file (d per directory, - per file normale, l per link simbolico)
Gli altri 9 caratteri (rwxr-xr-- nell’esempio) possono assumere i valori indicati nella seguente tabella:
| Carattere | Nome | Valore binario | Valore ottale (in base 8) | Significato |
|---|---|---|---|---|
r | read | 100 | 4 | Permette di leggere il contenuto del file o elencare i file in una directory |
w | write | 010 | 2 | Permette di modificare il file o creare/eliminare file in una directory |
x | execute | 001 | 1 | Permette di eseguire un file o accedere a una directory |
I 9 caratteri vanno letti a gruppi di 3 caratteri:
- primo gruppo di 3 caratteri (
rwxnell’esempio) indica i permessi di read, write, execute per l’owner (può leggere, modificare ed eseguire il file) - secondo gruppo di 3 caratteri (
r-xnell’esempio) indica i permessi di read, write, execute per il group (gli utenti del gruppo possono leggere ed eseguire il file, ma non modificarlo) - l’ultimo gruppo di 3 caratteri (
r--nell’esempio) indica i permessi di read, write, execute per gli others (gli altri utenti possono solo leggere il file).

Cambiare il proprietario di un file o una directory con il comando chown
Il proprietario (oppure un utente con i privilegi di superuser, tramite il comando sudo) può cambiare l’owner di un file o una directory con il comando chown eseguito da bash:
sudo chown [opzioni] nuovo_propietario nomefile
Esempio 2 – assegnare il file prova.txt al nuovo prioprietario root:
sudo chwon root prova.txt
Esempio 3 – assegnare la directory Immaginie tutte le directory e file in essa contenuti al nuovo proprietario root:
sudo chown -R root Immagini
Cambiare il gruppo di un file o una directory con il comando chgrp
Il proprietario (oppure un utente con i privilegi di superuser, tramite il comando sudo) può cambiare il gruppo di un file o una directory con il comando chgrp eseguito da bash:
sudo chgrp [opzioni] gruppo nomefile
Esempio 4 – assegnare il file prova.txt al gruppodaemon:
sudo chgrp daemon prova.txt
Esempio 5 – assegnare la directory Immaginie tutte le directory e file in essa contenuti al gruppo daemon:
sudo chgrp -R daemon Immagini
Cambiare i permessi di un file o una directory con il comando chmod
Il proprietario (oppure un utente con i privilegi di superuser, tramite il comando sudo) può cambiare i permessi di un file o una directory con il comando chmod eseguito da bash:
sudo chmod 755 nomefile
Significato del valore numerico
- Il primo digit del valore numerico (7) imposta i permessi per l’owner del file. Facendo riferimento alla tabella che segue, si vede che il codice 7 indica i permessi
rwx(read, write, execute). Si deve considerare la notazione binaria del numero 7 (111) e immaginare che il primo bit corrisponda al primo permesso (read), il secondo bit al secondo permesso (write) e il terzo bit al terzo permesso (execute). il valore 1 in ciascuna posizione indica che quel permesso è impostato (cioè assegnato all’utente), mentre il valore 0 indica che il permesso non è assegnato al’utente. - Il secondo digit (5) imposta i permessi per gli utenti inseriti nel group e indica i permessi
r-x(read, execute). - Il terzo digit (5) imposta i permessi per gli altri utenti (others) e indica i permessi
r-x(read, execute).
| valore | valore binario | read | write | execute | l’utente può |
|---|---|---|---|---|---|
| 1 | 001 | – | – | x | solo eseguire |
| 2 | 010 | – | w | – | solo modificare |
| 3 | 011 | – | w | x | modificare ed eseguire |
| 4 | 100 | r | – | – | solo leggere |
| 5 | 101 | r | – | x | leggere ed eseguire |
| 6 | 110 | r | w | – | leggere e modificare |
| 7 | 111 | r | w | x | leggere. modificare ed eseguire |
Risorse online
- digitalocean.com : How to set permissions linux: a guide to chmod and chown (in lingua inglese).

0 commenti