Seguici su Telegram, ne vale la pena ❤️ ➡ @trovalost
Vai al contenuto

Come impostare i permessi di WordPress [CHMOD] (aggiornata dicembre 2023)

I permessi di WordPress devono essere impostati in modo corretto, pertanto, non tanto per una questione di forma, ma perchè se non lo facciamo rischiamo di compromettere il funzionamento del sito e non farlo funzionare al meglio. Vedremo ora nel dettaglio come fare e di cosa si tratta, a questo punto. Come settare i permessi CHMOD di WordPress? Si tratta di una domanda molto richiesta da vari webmaster che, di fatto, periodicamente si imbattono in questo problema durante la gestione dei propri siti web. L’importanza di un settaggio corretto in questo ambito è dovuta ad una questione di standardizzazione del sito e riduzione, peraltro, di potenziali problemi in futuro.


Cerchi un hosting economico per il tuo sito o blog? Tophost ti aspetta (clicca qui)

Che cos’è il CHMOD

Il comando CHMOD è stato introdotto nel mondo del free software di Linux, fin dai tempi delle prime distribuzioni con licenza GNU. Nonostante il suo uso richieda generalmente  l’uso della shell del terminale di comando e/o SSH, è integrato nelle più recenti versioni di client FTP come Mozilla FTP. Quindi è disponibile sia nella versione grafica del software che come comando da lanciare testualmente, e serve essenzialmente per impostare i permessi di lettura, esecuzione e scrittura per i vari gruppi, secondo la logica di Linux.

Il comando CHMOD presenta vari parametri a corredo, ma il più delle volte si usa sfruttando una semplice combinazione di tre cifre (leggi qui per maggiori dettagli sulle combinazioni possibili).

Permessi di WordPress (in breve)

I permessi servono a stabilire cosa può fare un utente Linux/Unix che accede al sito, in termini di esecuzione di script, lettura e scrittura. Ecco perchè è importante settare bene il CHMOD: di fatto, impediremo a potenziali attacchi informatici di poter essere eseguiti, come eviteremo che si possa navigare liberamente nelle directory del nostro sito in cerca di eventuali falle.

Vado subito al dunque: sulla maggioranza dei siti in WP dovrai impostare i permessi come segue

  • CHMOD 644 per tutti i file
  • iCHMOD 775 per tutte le directory

Su alcuni servizi di hosting, tuttavia, le cose possono cambiare leggermente, e – anche per migliorare la sicurezza del sito – è consigliabile:

  • settare un CHMOD 644 per tutti i file di WP (tranne uno, il wp-config.php)
  • settare un CHMOD 755 per tutte le directory di WP
  • settare un CHMOD 600 per il wp-config.php (è un vettore di attacco molto diffuso, e questo è fatto in modo da evitare che malware e script malevoli possano metterci mano o modificarlo a vostra insaputa)

L’impostazione dei permessi CHMOD si effettua in due modi:

  1. mediante console di comando o terminale SSH;
  2. mediante accesso FTP alle cartelle ed ai file del vostro sito.

Come fare il CHMOD via FTP (file e directory)

Accedete al vostro sito con FileZilla, ad esempio,, inserite le credenziali di accesso (vedi qui per altri dettagli), entrate nella root del sito (se non ci siete già  dentro), adesso come prima cosa selezionate solo i file, uno per volta, directory escluse. Cliccate col tasto destro sulla selezione e selezionate dal menu a tendina “Permessi file” (vedi immagine).

ftp permessi file filezilla CHMOD

Ecco come impostare i permessi per tutti file, dopo averli selezionati: ciò equivale ad un CHMOD 644, come è possibile vedere dal valore numerico riportato, ed in questo caso decidiamo di applicare la modifica a tutti i file.

Screen 2014-11-08 alle 12.00.07

Una volta finita l’operazione, che in genere richiede qualche minuto di attesa a seconda della dimensione e del numero di file del sito, dovrete fare lo stesso selezionando solo le directory wp-content, wp-admin e wp-include, tasto destro, come al solito Permessi file col tasto sinistro e poi ecco come fare lo stesso per le directory:

Screen 2014-11-08 alle 11.59.45

Come impostare i permessi per WordPress via terminale SSH

Se accedete ai file del vostro sito mediante SSH, la procedura va effettuata direttamente via terminale, ovvero:

  1. fate login al vostro server come di consueto (preferibilmente accesso root), ad esempio ssh [email protected];
  2. entrate nella cartella dei file del vostro sito web, ad esempio cd /var/www/html (per le ultime versioni di Ubuntu); fate attenzione a non lanciare il comando direttamente dalla cartella utente o dalla cartelle root del sito, perchè la cosa avrebbe un significato completamente diverso;
  3. una volta che vi trovate nella cartella di WordPress corretta, impostate i permessi 755 su tutte le directory (cosଠcome suggerito in precedenza), mediante:
    find . -type d -print -exec chmod 755 {} \;
  4. impostate i permessi 644 su tutti i file (anche qui, come suggerito in precedenza per FTP), mediante
    find . -type f -print -exec chmod 644 {} \;
  5. non serve riavviare il server in alcun modo, per cui avete fatto! Se avevate problemi a caricare i file nella cartella media (uploads) non dovreste più averne a questo punto. Se non fosse cosଠe ci fossero ancora problemi di permessi, può darsi che il vostro server richieda un 775 anzichè un 755 sulle directory, per cui provate a lanciare in alternativa:
Ti potrebbe interessare:  Come creare e gestire gallerie di immagini (con lo shortcode [ gallery ])

find . -type d -print -exec chmod 775 {} \;

Problemi di permessi nel caricamento dei file (via SSH)

Se aveste problemi a caricare file nella cartella media (ad esempio /wp-content/uploads), ad esempio su un’installazione di WordPress su dedicato, VPS o altro hosting che offra SSH, potete provare questa procedura leggermente diversa. In pratica qui specifichiamo apertamente che il proprietario dei file debba essere del gruppo di Apache, che è una cosa che WordPress si aspetta e “da’ per scontata”.

Il messaggio di errore tipico di questa circostanza è il seguente:

Il file caricato non può essere spostato in wp-content/uploads/

Per cui, in questo caso, è necessario prima di tutto andare nella directory media wp-content/uploads (attenzione: /var/www/html/ va bene per Ubuntu, su altre distribuzioni Linux dovrete verificare in quale cartella Linux vengano caricati i file del sito, e partire da là¬);

cd /var/www/html/wp-content/uploads

poi bisogna specificare con chown la corretta associazione con il gruppo (anche questo è un problema di permessi, spesso e volentieri, che non permette di uploadare file nella directory dei media, e anche se non ha a che fare direttamente con chmod):

chown www-data:www-data  -R *

In alcuni casi, ad esempio se avete problemi di permessi che generano un qualche errore nella configurazione di un plugin di cache, è molto probabile che sia il file .htaccess l’indiziato, per il quale non compaiono i permessi corretti oppure, cosa ancora più probabile, i gruppi utenti non sono stati assegnati. Se manca l’assegnazione www-data e c’è root, su alcune configurazioni, per WordPress è impossibile che uno script possa modificare il file .htaccess. Quindi potete anche inserire l’istruzione esplicita per modificare i permessi di proprietà (own) di Linux esplicitamente su htaccess, visto che con * a volte non li prende:

chown www-data:www-data -R *.htaccess

In seguito andremo a dare i due comandi di prima, per le directory 755:

find . -type d -exec chmod 755 {} \;

e per i file 644 su tutti i file (find serve a cercare tutte le directory ed i file, rispettivamente):

find . -type f -exec chmod 644 {} \;

CHMOD e schermata bianca della morte di WP

Se vi è capitata la classica “schermata bianca” della morte e non riuscite ad accedere più al vostro sito nè a vederlo, è possibile che il problema sia legato ai permessi di WordPress, che potete provare ad impostare come indicato qui sopra. Altri “sintomi” tipici di un problema di permessi nel sito sono i seguenti:

  1. non si riescono a cancellare file o directory indesiderate, vuote o inutili;
  2. non si riesce ad aggiornare il blog;
  3. errori lato server tipo 403 o 500;
  4. non si riesce aggiornare un theme di WordPress;
  5. non si riescono a caricare immagini nella sezione Media;
  6. non si riescono ad aggiungere immagini ai post;
  7. da utenti di WP non è possibile aggiungere post, metterli in revisione o editarli, quando invece dovremmo avere i diritti per farlo;
  8. errori specifici come, in alcuni casi, suexec policy violation: see suexec log for more details
  9. aggiornamenti automatici non funzionano.

Vediamo subito come procedere a fare i controlli e le correzioni sul funzionamento di WordPress: si tratta di cose che potete fare anche da soli per gradi, verificando volta per volta se cambia qualcosa o se, quantomeno, il problema venga individuato.

In questa guida assumo che stiate utilizzando hosting Linux, perchè su quelli Windows il comando CHMOD non è disponibile.

A cosa serve reimpostare i permessi di WordPress

La rigenerazione dei permessi non risolverà  sempre e comunque tutti i problemi ma, di certo, è una cosa da verificare e correggere, se necessario, praticamente nella totalità  di casi critici. In alcune circostanze il malfunzionamento di WordPress può dipendere da altri fattori come plugin fallati, theme scadenti / infetti da malware, problemi sul core del sito, problemi a livello di hosting ed altro ancora.

Ti potrebbe interessare:  4 cose importanti da sapere sugli hosting per WordPress

Nota per la manutenzione: come rigenerare le chiavi Univoche di Autenticazione e di Salatura

Aprite da FTP il file wp-config.php, e sostituite questa porzione di codice:

define('AUTH_KEY',         'k=ll*~p[hi...');
define('SECURE_AUTH_KEY',  'd.%#D|-5!Y...');
define('LOGGED_IN_KEY',    'vt&v*a=sU5...');
define('NONCE_KEY',        'N6fAr+Z#xd...');
define('AUTH_SALT',        'oP|=-NUi(8...');
define('SECURE_AUTH_SALT', '_&sD1?Ic%N...');
define('LOGGED_IN_SALT',   'e#sF4m)^k:...');
define('NONCE_SALT',       'S}JptD7J8:...');

con quella generata dinamicamente da questa pagina https://api.wordpress.org/secret-key/1.1/salt/. Questo servirà  ad invalidare tutti i vecchi cookie, sbatterà  fuori dal sistema eventuali utenze rimaste loggate, e vi permetterà  di verificare che il sito funzioni davvero per tutti i visitatori.

Nota: CHMOD su hosting condivisi Aruba

Nota – alcuni provider di hosting come Aruba sembrano richiedere necessariamente il CHMOD 755 sia per i file che per le directory, in modo da evitare l’errore 500 sul server (fonte).

Accorgimenti generali per CHMOD

In generale, qualsiasi configurazione valida del CHMOD non deve finire MAI con un 7 finale (perchè implicherebbe permessi di scrittura da parte del pubblico, e questo va male su qualsiasi sito web), e per il resto dovete rifarvi alla documentazione ufficiale del CMS. Alcuni hosting di bassa qualità , inoltre, tendono a settare in modo sballato questo tipo di configurazione, probabilmente per imperizia del sistemista o, a volte, perchè ci sono script malevoli che possono settare male i permessi o, ancora, per un eccessivo zelo nel voler proteggere il sistema.

Non impostate mai il CHMOD 777 a nessun livello per “fare prima“, perchè rischiate di mettere a repentaglio la sicurezza del sito.

Per cambiare i permessi e verificarli, nella pratica, potete farlo con il vostro client FTP come FileZilla oppure, se vi sentite eroici temerari, anche via SSH. In pratica selezionate una ad una le directory ed andate ad impostare i permessi solo per i file e solo per le directory, consecutivamente, come mostrato nelle screen seguenti. Le riporto per wp-admin ma, in realtà , vale per wp-content e per wp-include (oltre che per la root del sito /) in maniera equivalente.

Configurazione alternativa: da provare se non vanno gli aggiornamenti automatici

Se avete problemi con gli aggiornamenti automatici, è lo stesso concetto da verificare: la guida ufficiale, infatti, suggerisce sempre di impostare (con lo 0 davanti, stavolta):

  1. 0644 per i file;
  2. 0755 per le directory

il che coincide nella pratica con quanto visto all’inizio, se non fosse per il fatto che stiamo impostato esplicitamente a 0 il valore dello special bit. Replicate pazientemente questa impostazione su tutti i file e le cartelle di WP (dopo aver sloggato tutti gli utenti voi compresi come admin), e poi controllate che sia tutto a posto facendo un giro nel sito, sia frontend che backend.

Tenete conto che alcuni problemi non dipendono da voi ma da come è stato impostato il vostro server, per cui chiedete all’hosting per maggiori delucidazioni cercando di essere sempre molto, molto specifici nella notifica dell’errore (del tipo, e lo scrivo con l’esperienza di chi lavora da anni a contatto con le realtà  dell’hosting italiano: non aprite ticket con richieste generiche “non mi funziona il sito”, “mi da’ errore” ecc. perchè vengono di solito ignorate, o ricevono risposte evasive).

Fonte: Hardening WordPress

Da non perdere 👇👇👇



Trovalost esiste da 4433 giorni (12 anni), e contiene ad oggi 4016 articoli (circa 3.212.800 parole in tutto) e 12 servizi online gratuiti. – Leggi un altro articolo a caso
5/5 (6)

Ti sembra utile o interessante? Vota e fammelo sapere.


Cerchi un hosting economico per il tuo sito o blog? Tophost ti aspetta (clicca qui)

Questo sito contribuisce alla audience di sè stesso.
Il nostro network informativo: Lipercubo.it - Pagare.online - Trovalost.it.