Linux: i comandi chown, chgrp e chmod

In ambiente Linux, i comandi chown, chgrp e chmod permettono di cambiare il proprietario, il gruppo e i permessi di accesso di un file o una directory.
immagine dell'autore dell'articolo

Scritto da: Alberto

Una vita nell'informatica, per lavoro e per passione.
agsdix-far fa-calendar-alt
Data pubblicazione: 1 Luglio 2025
Categorie: Linux
agsdix-far fa-comments

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:

CarattereNomeValore binarioValore ottale (in base 8)Significato
rread1004Permette di leggere il contenuto del file o elencare i file in una directory
wwrite0102Permette di modificare il file o creare/eliminare file in una directory
xexecute0011Permette di eseguire un file o accedere a una directory
Significato dei caratteri che rappresentano i permessi di accesso

I 9 caratteri vanno letti a gruppi di 3 caratteri:

  • primo gruppo di 3 caratteri (rwx nell’esempio) indica i permessi di read, write, execute per l’owner (può leggere, modificare ed eseguire il file)
  • secondo gruppo di 3 caratteri (r-x nell’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).
tabella con spiegazione dei permessi di accesso a file e directory in ambiente Linux
© serviziweb.padova.it

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).
valorevalore binarioreadwriteexecutel’utente può
1001––xsolo eseguire
2010–w–solo modificare
3011–wxmodificare ed eseguire
4100r––solo leggere
5101r–xleggere ed eseguire
6110rw–leggere e modificare
7111rwxleggere. modificare ed eseguire

Risorse online

0 commenti