Come impostare i permessi di default di WordPress correttamente [CHMOD]

Come impostare i permessi di default di WordPress correttamente [CHMOD]

Molti problemi di WordPress sono determinati da una scarsa conoscenza delle dinamiche internet che lo fanno funzionare: a differenza di Blogger (che ha una gestione errori su cui non possiamo intervenire comunque), WordPress in versione hosted su un servizio (come ad esempio Tophost, SupportHost oppure Hosting Virtuale) porta in sè una serie di know-how di cui dobbiamo, secondo me, essere consapevoli. Il rischio, diversamente, è quello di considerarlo un “oggetto misterioso” mettendo così a rischio, almeno in teoria, l’integrità dei nostri dati, dei post e delle pagine che faticosamente abbiamo messo insieme nel tempo.

Introduzione

WordPress migliora di versione in versione (per nostra fortuna), ed è sempre più facile, veloce e gratuito, ma non è affatto il “giocattolo” a cui generazioni di fuffari del web marketing hanno cercato di abituarci. 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 vedremo in questo articolo.

Quando è necessario questo intervento su WordPress: sintomi tipici

Ispirandomi alla guida ufficiale Hardening WordPress, ho riportato alcuni dei controlli (check) principali che potete effettuare da voi qualora WordPress presenti uno dei seguenti “sintomi”:

  1. non si riesce a cancellare file o directory indesiderate, vuote o inutili;
  2. non si riesce ad aggiornare il blog;
  3. non si riesce aggiornare un theme di WordPress;
  4. non si riescono a caricare immagini nella sezione Media;
  5. non si riescono ad aggiungere immagini ai post;
  6. da utenti di WP non è possibile aggiungere post, metterli in revisione o editarli, quando invece dovremmo avere i diritti per farlo;
  7. aggiornamenti automatici che non funzionano;
  8. varie ed eventuali sulla falsariga dei punti precedenti.

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 micro-guida assumo semplicemente 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.

Un errore legato ad una cattiva impostazione dei permessi su WordPress è ad esempio:

suexec policy violation: see suexec log for more details

che è una violazione del modulo suexec in realtà legato al fatto che bisogna impostare correttamente i permessi.

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 agire da amministratori in perfetta solitudine (o quasi).

Impostazione corretta dei permessi di WordPress via CHMOD / FTP

Esistono varie discussioni sul tema, e questo argomento è forse uno dei principali perchè, di fatto, settare male un permesso nella directory o nel file X di WordPress crea numerosi potenziali problemi ed errori imprevisti (tipo errore 403 o 500, a volte). Mediante FTP (quindi ad esempio con FileZilla) si può accedere al sito problematico con le solite credenziali, ed impostare i permessi come segue:

  • 644 per i file
  • 755 per le directory

Per chi non fosse pratico del comando CHMOD di Linux (che è quello che FileZilla utilizza senza dirci nulla), basti sapere che i tre numeretti indicano i livello di permesso a cui è consentito accedere per gruppo, utente e per utente anonimo.

Nota: CHMOD su hosting condiviso Aruba

Nota – alcuni provider di hosting come Aruba richiedono 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

A voi basta sapere che, in generale, qualsiasi configurazione valida 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.

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.

CHMOD per i file (644, su FileZilla)

Ecco come impostare i permessi per tutti file, dopo averli selezionati.

Screen 2014-11-08 alle 12.00.07

CHMOD per le directory (755, su FileZilla)

Ed ecco come fare lo stesso per le directory:

Screen 2014-11-08 alle 11.59.45

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:

  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).

[update] Come sistemare i permessi per WordPress via 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 root@123.456.789.123;
  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:

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 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 {} \;

Fonte: Hardening WordPress

Ti piace questo articolo?

15 voti

Su Trovalost.it puntiamo sulla qualità dei contenuti da quando siamo nati: la tua sincera valutazione può aiutarci a migliorare ogni giorno.

Come impostare i permessi di default di WordPress correttamente [CHMOD]

Votato 8.8 / 10, da 15 utenti