L'impostazione dei permessi dei file del proprio sito web è un aspetto molto importante, poiché tale operazione permette al server hosting di operare correttamente proprio sui file in questione. L'impostazione errata dei permessi sul server potrebbe causare problemi di funzionamento del sito, per cui è necessario operare le modifiche con la massima attenzione.
I permessi dei file indicano ciò che ogni utenza è autorizzata a compiere in termini di scrittura del file, lettura ed esecuzione. Le utenze autorizzate generalmente sono di tre tipi: “Proprietario”, ossia il webmaster del sito, che possiede l'accesso al sito web mediante cPanel, “Gruppo” che rappresenta, invece, tutte le eventuali altre utenze presenti sul server e “Pubblici” che rappresenta gli utenti ordinari del WWW.
Ogni utenza possiede un permesso specifico per lettura, scrittura ed esecuzione file. È molto importante che sia l'utenza “Gruppo” che “Pubblici” possiedano il permesso di leggere, ovvero di visualizzare, i file del sito: in caso contrario potrebbe verificarsi un errore 403 durante l'ordinario utilizzo del sito da parte degli utenti.
E' importante sapere che, all'interno del programma Gestione file, i permessi sono codificati attraverso numeri: in alcuni casi i numeri potrebbero essere quattro (ad esempio 0755), il che è del tutto equivalente a considerare soltanto gli ultimi tre (755).
I numeri rappresentano una combinazione univoca di permessi concessa al file oppure alla cartella del nostro sito: nella combinazione 755, la prima cifra si riferisce all'utenza “Proprietario”, la seconda a “Gruppo”, la terza a “Pubblici”. Il permesso di lettura viene codificato come 4, quello in scrittura come 2, quello in esecuzione come 1, la mancanza di un permesso come 0. Sono ammesse anche combinazioni degli status appena citati, ovvero:
- Scrittura ed esecuzione codificato come 3 (2+1);
- Lettura ed esecuzione codificato come 5 (4+1);
- Lettura e scrittura codificato come 6 (4+2);
- Lettura, scrittura ed esecuzione codificato come 7 (4+2+1).
I file devono possedere permessi 644 oppure 755, le cartelle devono possedere attributi necessariamente pari a 755. In termini di sito web, in molti casi, il permesso di esecuzione su un file è del tutto indifferente.Tutti i file presenti nella cartella cgi-bin, infine devono possedere permessi 755.
Impostazioni avanzate
Durante la fase di debug di un sito potrebbe esser necessario impostare i permessi a 777, ovvero il massimo della libertà: questa impostazione non è ammessa su tutti i server e, in generale, è del tutto equivalente alla classica 755 per la maggioranza degli script diffusi sul web.
Se uno script richiede necessariamente il permesso 777, quindi, potrebbe trattarsi di un problema di codice oppure lo stesso potrebbe risultare obsoleto e non più funzionante.
Rischi per la sicurezza
Il più grande problema per la sicurezza di un sito web consiste nel fornire permessi di scrittura alle utenze “Gruppo” e “Pubblici”, abilitando così eventuali utenti malintenzionati a modificare o cancellare elementi del sito.
Le ultime due cifre della combinazione dei permessi, come regola generale, non dovrebbe mai essere uguale alle cifre 2, 3, 6, 7.
Alcuni script, inoltre, sono problematici in termini di permessi perché richiedono necessariamente il 777, ed il sistema potrebbe considerare – a seconda dei casi e delle configurazioni sottostanti il server – l'utente PHP come “nobody”.
Permessi dalla shell di Linux/Unix
Come abbiamo visto in precedenza, i permessi possono essere rappresentati in modi differenti mediante una combinazione di tre o quattro cifre: se si utilizza SSH, tuttavia, i permessi compariranno come segue:
drwxr-xr-x
0123456789
Il primo carattere rappresenta il tipo di file mentre le tre lettere successive codificano rispettivamente lettura (r), scrittura (w) ed esecuzione (x). Le successive tre lettere, invece, rappresentano i permessi del “Proprietario”: si noti inoltre come il trattino “-” indichi la mancanza di permessi.
rwx rappresenta quindi i permessi ordinari del “Proprietario”, r-x quelli del “Gruppo” e (le ultime tre lettere) quelli “Pubblici”: r-x significa che la scrittura non è ammessa, in particolare, per quel determinato ruolo.
Modifica dei permessi
Esistono tre modi per modificare i permessi:
- Utilizzare File Manager all'interno di cPanel
Uno dei modi più immediati per modificare i permessi dei file è quello di utilizzare il pannello di controllo cPanel, in particolare il File Manager (lo stesso utilizzato per impostare il mod_rewrite).
Per modificare i permessi sarà necessario seguire la procedura di seguito:
1. Accedere al proprio pannello di controllo cPanel;
2. Cliccare su “Gestione File” (File Manager);
3. Selezionare il file che si desidera modificare in termini di permessi;
4. Selezionare il link “Cambia permessi” (Change Permissions);
5. Inserire i permessi desiderati secondo la griglia riportata;
6. Cliccare su “Cambia” per confermare la modifica. - Utilizzare un client FTP
Un modo alternativo per modificare i permessi consiste nell'utilizzo di un client FTP. La procedura da seguire sarà la seguente:
1.Connettersi al sito mediante FTP (ad esempio FileZilla);
2. Selezionare il file;
3.Selezionare “Permessi” oppure “Attributi” oppure, in FileZilla, “Permessi file...”;
4.Impostare i permessi, cliccando su “Ok” per confermare la scelta.
La connessione tramite FTP può rivelarsi molto utile per impostare, se necessario, anche i permessi di un gruppo di file o di una cartella.
- Utilizzare SSH oppure uno script apposito
L'utilizzo SSH o di uno script apposito è una ulteriore alternativa per modificare i permessi. L' operazione può essere eseguita a basso livello mediante il comando CHMOD.