Configurarea drepturilor de acces și a proprietarului fișierelor WordPress – CentOS LINUX

Permisiuni asociate fișierelor WordPress în CentOS LINUX

Configurarea drepturilor de acces și a proprietarului fișierelor WordPress în CentOS LINUX


În acest articol sunt prezentate tipurile de permisiuni asociate fișierelor WordPress în CentOS Linux. Configurarea unui server pentru instalarea WP presupune stabilirea corectă atât a permisiunilor de acces asociate fișierelor, cât și a drepturilor de proprietate asupra fișierelor și directoarelor.

Directoarele și fișierele situate în rădăcina site-ului web (/var/www/html/site.exemplu) trebuie sa aibă ca proprietar utilizatorul apache și trebuie să aparțină grupului apache. Acest lucru este important întrucât o serie de funcții WP verifică mai întâi dacă fișierele/directoarele aparțin utilizatorului și grupului sub care rulează serverul web (apache) și apoi verifică permisiunile.

Directorul „Document Root” (/var/www/html) trebuie să aibă ca proprietar un utilizator diferit de utilizatorul apache din raționamente de securitate. Acest utilizator poate fi chiar utilizatorul root. Document Root este directorul implicit în care apache este configurat să caute site-urile găzduite pe server.

Toate site-urile web se vor găsi în Document Root, fiecare site în propriul director, iar aceste directoare trebuie sa aparțină utilizatorului și grupului apache.

Ce permisiuni recomandă WordPress ?

WordPress recomandă stabilirea permisiunilor pentru fișiere la valoarea 644 (-rw-r–r–), iar pentru directoare 755 (drwxr-xr-x). De asemenea, pentru fișiere precum wp-config se recomandă permisiunea 400 (r– — —) din motive de securitate.

Aceste recomandări sunt potrivite mai ales în cazul găzduirii de tip shared-hosting, unde mulți utilizatori au acces la resurse partajate crescând riscurile de securitate. Deseori temele și plug-in-urile WP vor solicita drepturi mai permisive pentru instalarea, modificarea și actualizarea fișierelor precum 664 (-rw-rw-r–) – fișiere, respectiv 775 (drwx rwx r-x) – directoare. Altfel spus, sunt solicitate drepturi de scriere și pentru grup, nu doar pentru utilizator (proprietar).

Problema extinderii drepturilor de scriere către grup este reprezentată de faptul că toți membrii acelui grup vor avea aceste drepturi. Însă, în configurația unui VPS, membrii grupului ar trebui să fie doar apache și utilizatorul sub care se administrează serverul.

Cum modificăm proprietarul și drepturile de acces pentru a instala WordPress în CentOS Linux?

În cazul în care instalarea/actualizarea/modificarea WordPress, a plugin-urilor, sau a temelor eșuează, în prima etapă se verifică și se modifică proprietarul directorului în care este instalat WP. În a doua etapă se acordă drepturi de acces extinse, iar după finalizarea operațiunilor se revine la drepturile de acces inițiale, mai stricte.

#1. Modificarea proprietarului și a grupului <chown>

În mod implicit, directorul/fișierul aparține utilizatorului care l-a creat (root, sau utilizatorul care administrează serverul). De aceea, primul pas este să ne asigurăm că directorul în care instalăm WP aparține utilizatorului și grupului apache.

Se verifică proprietarul (owner) directorului folosind comanda < ll -alsh> și se observă că directorul aparține user-ului și grupului root. Tot utilizatorului root îi aparțin și subdirectoarele și fișierele din acest director, serverul web (apache) neputând să scrie fișierele, instalarea WP neputându-se realiza.

Verificarea utilizatorului și a grupului folosind comanda "ll -alsh"
Verificarea utilizatorului și a grupului folosind comanda „ll -alsh”

Folosind comanda <chown> vom schimba utilizatorul + grupul directorului. Prin argumentul „R” vom opera modificările și asupra subdirectoarelor și fisierelor aflate în acest director.

# chown -vR apache:apache site.exemplu/
Schimbarea recursivă a proprietarului și a grupului (owner:group) de directoare și fișiere în WordPress

Schimbarea recursivă a proprietarului și a grupului (owner:group) de directoare și fișiere în WordPress

  • chown (change owner) = comanda permite modificarea proprietarului/deținătorului unui fișier sau director;
  • v (verbose) = afișează rezultatul operațiunii;
  • R (recursive) = operațiunea se va realiza asupra directorului indicat, cât și a subdirectoarelor și fișierelor ;
  • apache:apache (user:group) = indică noul proprietar, respectiv grup căruia îi vor fi asociate fișierele/directoarele;
  • site.exemplu/ = directorul în care este instalat WP și asupra căruia se aplica modificarile.

Modificarea proprietarului și a grupului poate fi realizată numai de către utilizatorul root; de aceea, comenzile anterioare au fost rulate folosiind contul de root al sistemului.

#2. Modificarea drepturilor de acces pentru fișiere și directoare < chmod>

WordPress folosește permisiunile specifice Linux pentru a stabili ce operațiuni ( de scriere, citire sau executare) poate realiza un utilizator asupra unui fișier sau director. Există trei categorii de utilizatori:

  1. OWNER (utilizator): utilizatorul care deține fișierul/directorul;
  2. GROUR (grup): un grup de utilizatori care dețin fișierul/directorul;
  3. OTHERS (ceilalți) : restul lumii, utilizatorii care nu intră în niciuna dintre categoriile anterioare;

Există trei tipuri de permisiuni pentru fiecare dintre cele trei categorii de utilizatori:

  1. READ (citire): utilizatorul poate citi conținutul fișierului respectiv poate lista conținutul directorului;
  2. WRITE (scriere): utilizatorul poate modifica conținutul fișierului/directorului;
  3. EXECUTE (execuție): utilizatorul poate lansa fișierul în execuție, respectiv poate intra în director.

Modificarea permisiunilor de acces se face prin folosirea comenzii <chmod>. Dacă permisiunile recomandate nu sunt suficiente pentru a rula WordPress, putem relaxa drepturile de acces la nivelul 664 (-rw- rw- r–) pentru fișiere, respectiv 775 (drwx rwx r-x) pentru directoare.

Vom acorda utilizatorului apache, precum și grupului apache permisiunile de scriere. Următoarele comenzi se execută succesiv folosiind utilizatorul root.

  • Modificare globală permisiuni pentru FIȘIERE
# find /var/www/html/site.exemplu -type f -exec chmod 664 {} \;
  • Modificare globală permisiuni pentru DIRECTOARE
# find /var/www/html/site.exemplu -type d -exec chmod 775 {} \;

O ultimă modificare este obligatorie și vizează drepturile de acces la fisierul de configurare wp-config.php. Fișierul nu este criptat și conține detalii precum: denumirea, utilizatorul si parola bazei de date. Din acest motiv, trebuie acordat un acces minim doar utilizatorului apache.

  • Restricționarea drepturilor de acces wp-config.php 400 (-r– — —)
# chmod -v 400 wp-config.php

Astfel, doar proprietarul (utilizatorul apache) are drept de citire asupra fișierului. Utilizatorii din grup și other (restul lumii) nu au niciun fel de drept asupra fișierului, neputând deschide/citi/modifica acest fișier.

Concluzie – Permisiuni asociate fișierelor WordPress în CentOS

Modificarea deținătorului fișierelor/directoarelor, precum și elevarea drepturilor de acces pentru grup vor elimina erorile de instalare, actualizare, sau modificare a platformei WP, a temelor și plug-in-urilor. Chiar dacă membrii în grupul apache sunt utilizatorul root și utilizatorul propriu (cel creat de noi la configurarea inițială a VPS-ului), după realizarea operațiunilor de mai sus este indicat să readucem permisiunile la valorile inițiale recomandate de WordPress pentru a evita riscurile de securitate.

Posted in WordPress and tagged , , , , , , , .

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *