Cosa sono i chmod
I permessi chmod sono tipici dei sistemi operativi UNIX, tra cui Linux. Non sono altro che le istruzioni che vengono date al sistema su cosa si può e cosa non si può fare con una data directory e file.
I sistemi operativi suddetti, in merito alla possibilita di operare con un file fanno distinzione fra 3 tipi di soggetti: Proprietario (User), Gruppo (Group), Utenti (Others)
Per ciascuno di questi utenti è necessario specificare i diversi permessi riguardanti la directory o il file in questione. I permessi sono indicati tramite alcuni numeri ovvero:
- Lettura : permetti l'acceso al file (4)
- Scrittura : permetti le modifiche del file da parte di un utente (ad esempio un visitatore del tuo sito) (2)
- Esecuzione : usato per i files eseguibili, tra cui gli script cgi, permette l'esecuzione dello stesso (1)
Questi 3 permessi devono essere regolati per ognuno dei 3 tipi di utenti. Ad esempio chmod 755, non è altro che il tipo di permesso che si imposta su un file (ad esempio un cgi) che serve a renderlo:
- leggibile-scrivibile-eseguibile al proprietario
- leggibile-eseguibile al gruppo
- leggibile-eseguibile agli altri utenti
Il chmod 755 si ottiene in questo modo:
|
Permessi proprietario:
|
Permessi gruppo:
|
Permessi utenti:
|
Affianca i tre totali ottenuti ed ecco qui 755.
Un altro esempio è dato dal chmod 666, tipico dei files di database.
|
Permessi propietario:
|
Permessi gruppo:
|
Permessi utenti:
|
Affianca i tre totali ottenuti ed ecco qui 666.
Come vedi il discorso è meno ostico di quanto non appaia a prima vista, ma è comunque fondamentale. Infatti sbagliare chmod su un file significa non fare funzionare il cgi e magari impazzire cercando di capire perchè.
Attenzione!
I chmod, quando riferiti ad una directory, cambiano leggermente di significato. Infatti:
- Leggibile
- Significa possibilità di ottenere dall'esterno della directory l'elenco dei files
- Scrivibile
- Significa possibilità di creare nuovi files all'interno della directory
- Eseguibile
- Significa permesso di accesso all'interno della directory
Un altro modo di descrivere i chmod è quello letterale. Dove:
- -
- Significa assenza di quell'elemento.
- d
- Si tratta di una directory.
- l
- Si tratta di un link simbolico.
- r
- "Reading" cioè leggibile.
- w
- "Writing" cioè scrivibile.
- x
- "Executing" cioè eseguibile.
La struttura della riga è la seguente:
|directory o meno(1 carattere)|diritti dell'amministratore(3 elementi)
|diritti dei gruppi(3 elementi)|diritti degli utenti(3 elementi)
|
Un esempio pratico di chmod 755 attribuito ad una directory: drwxr-xr-x
Esempio di chmod 666 attribuito ad un file: -rw-rw-rw-
Un'altra notazione che si trova per indicare un certo settaggio dei chmod, che corrisponde anche ad un comando shell, è ad esempio la seguente: chmod a+rw
la struttura è la seguente:
chmod |1° elemento|2° elemento|3° elemento
Dove:
- 1° elemento
- Indica i soggetti a cui si applicheranno i chmod che vengono settati. Possibilità: a (all = tutti); (nulla) (all = tutti); u (user = propietario); g (group = gruppo); o (others = altri utenti).
- 2° elemento
- Indica il tipo di operazione da fare, cioè se i chmod in questione vanno aggiunti o sottratti. Possibilità: + (i chmod indicati vanno aggiunti ai soggetti indicati); - (i chmod indicati vanno tolti ai soggetti indicati).
- 3° elemento
- Indica i chmod che dovranno essere aggiunti o tolti, e segue la notazione letterale. Possibilità: r (lettura); w (scrittura); x (eseguibilità).
Per l'esempio:
chmod a+rw
Corrisponde a:
chmod 666
Bisogna però fare attenzione al fatto che con la
prima notazione si dice al sistema di "aggiungere" quei
chmod al file, e quindi se lo stesso avesse già avuto dei permessi di esecuzione
li conserverà.
Ad esempio:
Il file prova.pl ha chmod 755, cioè
-rwx-r-xr-x
se noi scriviamo:
chmod a+rw prova.pl
avremo che ora prova.pl avrà chmod 777
cioè -rwxrwxrwx.![]()
| Indice del sito |
