Mappen, bestanden & rechten - 2020 (WordPress, 3)

Uit De Vliegende Brigade
Ga naar: navigatie, zoeken

Tegen alle bedoelingen in, is dit alweer de derde versie van het script wp_sr (en bijbehorend beleid) om rechten op mappen en bestanden in WordPress te regelen.

Een historie van problemen

Verse 1 - Mei 2020 - Basisversie

In mei was de eerste versie van wp_sr geboren: Mappen, bestanden & rechten - 2020 (WordPress)

Basisidee:

  • www-data (=Apache =site) is eigenaar van alle mappen en bestanden, maar heeft slechts beperkte rechten: Dit maakt de site minder gevoelig voor kraakpogingen
  • Daarnaast zitten alle bestanden en mappen in de groep www-admin zodat beheerders (=ik en collega G.) ongehinderd door deze beperkingen hun werk kunnen doen.

Dit basisidee werkte prima, maar had twee problemen:

  • Soms (bv. tijdens installatie van plugins) zijn deze rechten te beperkt, en handmatig verruimen van de rechten is best lastig
  • Het idee dat de site niet naar zichzelf kan schrijven (en bv. zichzelf niet kan updaten), lijkt toch erg ongebruikelijk te zijn, ook al vind ik het ontzettend logisch. Sterker nog: Al tijdens de research voor dit script, viel het me op dat ik nergens online bevestiging vond dat het een slecht idee is dat WordPress zichzelf kan updaten (ik vind het nog steeds een slecht idee)

Versie 2 - Aug. 2020 - Mode-parameter

In versie 2, eind aug. 2020, werd een mode-parameter geïntroduceerd die je kunt meegeven bij aanroepen van het script: Mappen, bestanden & rechten - 2020 (WordPress, 2)

  • Closed: Rechten worden ingeregeld zoals in Versie 1
  • Open: Rechten worden verruimd ingeregeld, zoals nodig voor installatie van sommige plugins en andere zaken.

Deze versie is nooit naar tevredenheid opgeleverd, omdat een nieuw probleem optrad: Performance: Een flinke WordPress-installatie kan uit duizende bestanden en mappen bestaan. Dan kan het instellen van rechten een lastig klusje worden, zeker als je twee sets hebt met vaak tegenovergestelde instellingen. Een paar snelle hacks brachten helaas geen oplossing. Daarom tijd voor een nieuwe versie.

Versie 3 - Sep. 2020 - Performance

Deze derde versie wordt geoptimaliseerd naar performance. Functionaliteit blijft hetzelfde als versie 2.

Performance-tests

Testresultaten voor een webwinkel met zo'n 15.000 producten, 30.000 afbeeldingen en W3 Total Cache (zie chmod voor details):

  • chmod zonder -v toegepast op deze hele site, duurt ca. 4 seconde - Daar is heel goed mee te leven
  • chmod inclusief -v is zo'n 5 keer langzamer. Daar valt mee te leven
  • Find is zo'n 200 tot 4.000 keer langzamer dan chmod
  • Find toegepast op alleen de mappen in de W3-cache-map, duurde iets meer dan een minuut. Da's bijna evenlang als voor de bestanden: Blijkbaar is de verhouding mappen/bestanden in deze map redelijk in evenwicht met elkaar.

Conclusies

  • chmod in één keer toepassen op een hele site, is prima te doen. Ook als het een grote site betreft
  • Als het even kan, nooit find gebruiken
  • Als je toch find moet gebruiken, dan liever niet voor de W3-cache-map
  • Als je toch find moet gebruiken, dan liever alleen voor mappen en niet voor bestanden.

Zie ook