Wordpress: impostare i permessi corretti
Come modificare i permessi corretti in un sito web WordPress
27/12/2017
Impostare i corretti permessi in un’installazione WordPress è un passo fondamentale nel processo di configurazione di un nuovo sito web, in quanto risolve molti problemi legati alla sicurezza. Ciascun dominio ha una sua configurazione specifica, per cui questo articolo non potrà coprire tutti i casi ma fornisce solo una descrizione dei principi generali della configurazione dei permessi. In generale qualunque filesystem comprende di file e directory dei quali si è interessati a:
quale utente possiede uno specifico file o directory
quali sono le operazioni permesse (lettura, scrittura, esecuzione)
Tipicamente un sito wordpress viene gestito da un webserver, come ad esempio Apache, che si occupa di eseguire il codice php, gestire i file e servirli al client richiedente (usualmente un browser). Se vengono impostati i permessi sbagliati si incappa spesso in problemi di upload delle immagini, installazione di temi e plugin, esecuzione di script ecc.
Normalmente un’installazione wordpress utilizza trasferimenti ftp (file transfer protocol) per modificare il filesystem. Per esempio ogni volta che instaliamo un tema o un plugin il suo caricamento avviene tramite ftp. Ciò comporta che idealmente l’intera cartella di un sito wordpress e tutti e file e sottocartelle contenute in esso debbano appartenere allo stesso utente o gruppo impostato nella connessione ftp. Inoltre è necessario garantire i privilegi di scrittura a quell’utente. Le impostazioni raccomandate sono le seguenti:
- 755 per tutte le cartelle e sottocartelle
- 644 per tutti i file
È possibile impostare i permessi sia da interfaccia grafica (ad esempio filezilla) che da riga di comando. L’esempio seguente utilizza la seconda opzione, assumendo di essere un utente root e di avere www-data come utente ftp e gruppo:
chown www-data:www-data -R * # Lascia che Apache sia il proprietario
find . -type d -exec chmod 755 {} ; # Cambia i permessi sulle cartelle rwxr-xr-x
find . -type f -exec chmod 644 {} ; # Cambia i permessi sui file rw-r–r–
La prima riga prende tutti i file e cartelle del sito e le rende proprrietà di www-data (in questo esempio Apache) tramite il comando chown.
La seconda riga scorre tutte le cartelle con il comando find ed applica il permesso 755 tramite il comando chmod.
La terza riga scorre tutti i file con il comando find ed applica il permesso 644 tramite il comando chmod.
- 755 significa che l’utente (www-data) ha il privilegio di lettura, scrittura ed esecuzione, il gruppo ha lettura ed esecuzione e tutti gli altri hanno lettura ed esecuzione
- 644 significa che l’utente (www-data) ha il privilegio di lettura e scrittura, il gruppo solo di lettura e tutti gli altri solo di lettura
Questo procedimento richiede meno di cinque minuti e una volta capito non si avranno più problemi con i permessi in un sito wordpress.
Riferimenti: https://codex.wordpress.org/Changing_File_Permissions