Come posso rendere il mio file .htaccess scrivibile da wp-admin?
Il mio provider ha cambiato l'hosting del mio blog WordPress e tutto ha smesso di funzionare. C'era un problema DNS che hanno risolto, ma poi ogni pagina tranne la home page restituiva un errore 404.
Quando ho controllato la pagina dei permalink (/wp-admin/options-permalinks.php
) in wp-admin ho visto quanto segue:
Se il tuo file .htaccess fosse scrivibile, potremmo farlo automaticamente, ma non lo è quindi queste sono le regole mod_rewrite che dovresti avere nel tuo file .htaccess. Clicca nel campo e premi CTRL + a per selezionare tutto.
Aggiungere quello che elencava (tramite il file manager del mio provider) ha risolto il problema ma mi ha fatto riflettere.
Vorrei che il file .htaccess
fosse scrivibile per wp-admin.
So che il file non dovrebbe essere scrivibile per tutti e manterrei i permessi il più restrittivi possibile per mantenere le cose sicure, sono solo interessato a rendere la mia vita più facile.
Tuttavia, noto che i permessi sul file sono:
rw-r--r--
Quindi quali permessi devo impostare per rendere il file scrivibile da wp-admin, ma non da chiunque altro? Oppure ci sono altri permessi sul server che devono essere impostati?
Posso fare manualmente modifiche attraverso l'interfaccia del file manager del provider quindi non è come se non potessi aggiornare il file. È solo che potrebbe diventare fastidioso se devo continuare a farlo.
Nei file system dei computer, diversi file e directory hanno permessi che specificano chi e cosa può leggere, scrivere, modificare e accedervi. Questo è importante perché WordPress potrebbe aver bisogno di accesso in scrittura ai file nella directory wp-content per abilitare determinate funzioni.
Tuttavia, è meglio mantenere il file .htaccess non scrivibile da tutti. Il file .htaccess è un file di configurazione distribuito ed è il modo in cui Apache gestisce le modifiche di configurazione su base per-directory.
http://codex.wordpress.org/htaccess
Mantenere il file .htaccess scrivibile da tutti comporta le sue conseguenze, principalmente problemi di sicurezza. Il peggio che può accadere come risultato dell'utilizzo di permessi 777 su una cartella o persino su un file, è che se un cracker malintenzionato o un'entità è in grado di caricare un file dannoso o modificare un file corrente per eseguire del codice, avrà il controllo completo sul tuo blog, incluse le informazioni del database e la password.
http://codex.wordpress.org/Changing_File_Permissions
Permessi Predefiniti (umask 022)
644 -rw-r--r-- /home/user/wp-config.php
644 -rw-r--r-- /home/user/cgi-bin/.htaccess
Permessi Sicuri
600 -rw------- /home/user/wp-config.php
604 -rw----r-- /home/user/cgi-bin/.htaccess
Permessi .htaccess
644 > 604 - Il bit che consentiva al gruppo proprietario del file .htaccess il permesso di lettura è stato rimosso. 644 è normalmente richiesto e raccomandato per i file .htaccess.

Se un attaccante può caricare un file PHP o leggere le informazioni di accesso al tuo database dal file wp-config.php
, sei praticamente fregato. Avere un file .htaccess
in sola lettura non ti aiuterà molto a quel punto.

@SimonEast corretto grazie, ma non sono sicuro dove nella mia risposta ho menzionato di mantenere wp-config.php scrivibile. Inoltre WordPress ha bisogno di accesso in scrittura in alcune cartelle come la cartella degli upload. Invito gli utenti a consultare la pagina delle autorizzazioni dei file di WordPress che ho anche menzionato nella mia risposta. :)

Versione breve: Non puoi.
Versione lunga: Tecnicamente esistono modi per ottenere questo risultato, ma ① probabilmente non sono disponibili per te come utente su un server condiviso dove non hai i permessi di root e ② anche se lo fossero, presentano 'insidie' con cui davvero non vuoi avere a che fare.
Prima di tutto, se non sei l'amministratore di sistema con i permessi di root, è improbabile che tu abbia alcuna speranza di impostare le autorizzazioni necessarie.
I bit di permesso UNIX controllano se tu, le persone nel tuo gruppo e chiunque altro possa leggere, scrivere ed eseguire i file. Dato questo set di opzioni e il fatto che tu e il server web probabilmente non apparteniate allo stesso gruppo, non c'è modo per te di usare quei permessi per impostare un valore per cui tu e l'utente del server web possiate scrivere il file ma altri no. Per definizione dovresti cambiare i permessi "mondiali" e... puoi immaginare le conseguenze.
Nella remota eventualità che il tuo account utente e il server web siano effettivamente nello stesso gruppo utente, dovresti seriamente iniziare a dubitare della sicurezza del tuo provider di servizi web.
Una tecnica leggermente meno folle che alcuni host utilizzano è fornirti un'interfaccia speciale per convertire file e cartelle specifici in modo che siano di proprietà del server web. Questa è una scelta che privilegia la comodità rispetto alla sicurezza, che rende la vita più facile alle persone, ma ha delle condizioni. In ogni caso, non potresti modificare manualmente il file senza ripristinare la proprietà a te stesso.
Anche se ti viene offerto uno o più modi per consentire al software del server web di modificare il file .htaccess, faresti molto meglio a non accettarli. In un ambiente di hosting condiviso devi renderti conto che altre persone oltre a te stanno ESEGUENDO codice come utente del server web. Se la tua installazione di Wordpress può modificare il tuo file .htaccess, cosa impedisce al Wordpress del prossimo utente di modificare il tuo in modo dannoso? In teoria le impostazioni open_base_dir di PHP lo confineranno a leggere e scrivere cose all'interno del tuo DOCUMENT_ROOT, ma mentre il modulo PHP è ragionevolmente bravo a far rispettare questo, è abbastanza comune che gli ISP e i piccoli host abbiano altri sistemi CGI che non sono adeguatamente confinati o impostazioni del server mal configurate che permettono ad altri utenti sullo stesso server di interferire con qualsiasi cosa altri utenti abbiano convertito in proprietà del server web.
L'unico modo tecnico per rendere davvero possibile questo è con una configurazione di host virtuale che esegua effettivamente come te quando serve il tuo sito (il che introduce altri rischi) o con ACL del file system — e sebbene possibile, è improbabile che il tuo ISP sia attrezzato per configurarli correttamente.
In sintesi, dal punto di vista della sicurezza sei meglio se wp-admin non può scrivere su .htaccess. Questo dovrebbe comunque essere un problema poco frequente, di solito in caso di cambiamenti di versione di Wordpress o del software del server (ad esempio, il passaggio da Apache 2.2 a 2.4 ha significato che molti file .htaccess in tutto il web dovevano essere aggiornati, ma questo è avvenuto nell'arco di anni). Non è qualcosa che dovrebbe cambiare ogni volta che aggiorni il tuo sito, solo se hai fatto un cambiamento architetturale e hai bisogno di facilitare la migrazione di vecchi URL a nuovi, ecc.
