Gestire i permessi: chmod, chown, chgrp
Fino ad ora ci siamo soffermati (in diverse lezioni) sulle modalità di gestione di file e cartelle. In questa lezione vedremo un argomento strettamente correlato: la gestione dei permessi (argomento molto importante essendo Linux un sistema multiutente).
In una precedente lezione di questa guida abbiamo visto il comando ls, in particolar modo abbiamo già detto che l'utilizzo della sintassi:
ls -alha la funzione di stampare a video l'elenco dei file (anche quelli nascosti) e delle cartelle presenti nella posizione corrente.
L'output generato da questo comando è ricco di informazioni:

- colonna dei permessi
- utente proprietario / gruppo
- il primo spazio i ndica la tipologia dell'elemento e può avere i seguenti valori: d (directory), l (link simbolico), - (file);
- i seguenti nove spazi indicano i permessi; più precisamente si tratta di tre distinti gruppi di 3 permessi (r = lettura; w = scrittura; x = esecuzione). Il primo gruppo da tre riguarda il proprietario, il secondo riguarda il gruppo ed il terzo riguarda gli altri utenti.
Le due colonne proprietario e gruppo indicano, rispettivamente l'utente proprietario del file ed il gruppo di appartenenza.
Dopo questa lunga, ma doverosa, premessa veniamo al nocciolo della questione, ovvero come gestire e modificare queste informazioni.
A tal scopo linux dispone di comandi ad hoc. Vediamoli in rassegna:
chmod
E' il comando che modifica i permessi (lettura, scrittura, esecuzione).
Il comando in oggetto ha una duplice sintassi, vediamole entrambe:
1) chmod con sintassi simbolica
Consente di assegnare diversi permessi al proprietario, al gruppo ed agli altri utenti. La sintassi è la seguente:
chmod a=rwx nomefilenel nostro esempio abbiamo assegnato a tutti (a = all) tutti i permessi (rwx).
A sinistra del simbolo uguale (=) abbiamo l'assegnatario del permessi, a destra i permessi assegnati.
L'assegnatario viene identificato attraverso una lettera:
- a (tutti)
- u (utente proprietario)
- g (gruppo)
- o (altri utenti)
2) chmod con sintassi ottale
Con questa sintassi i permessi vengono assegnati a tutti i livelli simultaneamente. Al posto delle lettere rwx si utilizzano 3 numeri. Facciamo un esempio:
chmod 777 nomefileNel nostro esempio abbiamo assegnato a tutti i massimi permessi (cioè "rwx" come nell'esempio precedente).
In questa sintassi i tre numeri definiscono i permessi dei tre livelli: il primo numero riguarda l'utente proprietario, il secondo il gruppo, il terzo gli altri utenti.
Di seguito una tabella dei valori numerici e del loro significato:
- 7 corrisponde a rwx
- 6 corrisponde a rw
- 5 corrisponde a rx
- 4 corrisponde a r
- 3 corrisponde a wx
- 2 corrisponde a w
- 1 corrisponde a x
- 0 negato ogni accesso
chmod 750 nomefilechown e chgrp
Il comando chown è utilizzato per cambiare l'utente proprietario e/o il gruppo assegnato ad un file o ad una directory. La sintassi di chown è molto semplice:
chown nomeproprietario:nomegruppo nomefilepuò essere utilizzato anche per il solo proprietario (in questo caso è possibile omettere il nomegruppo):
chown nomeproprietario nomefileFacciamo un esempio: poniamo di voler assegnare il file immagine.jpg all'utente 'pippo' ed al gruppo 'grafici':
chown pippo:grafici immagine.jpgMolto simile a chown è chgrp che si limita a cambiare il gruppo di un file o directory (senza poter intervenire sul proprietario). La sintassi è la seguente:
chgrp nomegruppo nomefilechmod, chown, chgrp in modalità ricorsiva
Tutti e tre i comandi visti in questa lezione supportano la modalità ricorsiva. Tal modalità è molto comoda se si deve agire su una cartella e su tutto quanto è in essa contenuto.
Per attivare la modalità ricorsiva:
chmod -R 777 nomecartella chown -R nomeproprietario:nomegruppo nomecartella chgrp -R nomegruppo nomecartellaNella prossima lezione vedremo come creare e gestire utenti e gruppi.







