Select Page

Een degelijk bestandensysteem voor WordPress Toelatingen en eigendomsrechten

Een degelijk bestandensysteem voor WordPress Toelatingen en eigendomsrechten

Wanneer mensen spreken over de beveiliging bij WordPress, dan zijn toestemming geven aan bestanden en eigendomsrechten eigenlijk de laatste dingen waar ze aan denken. Het installeren van veiligheidsplugins is een goede standaardactiviteit en eigenlijk een must voor iedere WordPress site. Hoewel wanneer uw bestandensysteem en de toelatingen er niet correct voor ingesteld zijn, kunnen de meeste veiligheidsmaatregelen gemakkelijk omzeild worden door indringers.

Toelatingen en eigendomsrechten

Toelatingen en eigendomsrechten zijn belangrijke gegevens bij WordPress installaties. Het eerste wat u zou moeten doen na de installatie van WordPress, is deze goed instellen in uw web server. Wanneer u een verkeerde set van toestemmingen installeert, kunnen er fatale fouten ontstaan die het einde van uw website kunnen betekenen. Ten onrechte afgeleverde toelatingen kunnen uw website compromitteren en ze kwetsbaar maken voor aanvallen.

Behalve de zorgen rond de beveiliging, zijn er een aantal andere problemen die hun oorsprong hebben in verkeerde toelatingen en eigendomsrechten. Bent u ooit een blanco wit scherm tegengekomen op het moment dat u uw website voor de eerste keer probeerde te uploaden? Of hebt u ooit foutboodschappen gekregen wanneer u probeerde afbeeldingen te uploaden met behulp van de media-uploader? Het aanpassen van de toelatingen en de eigendomsrechten van uw bestanden en mappen kan dit soort problemen dikwijls oplossen.

In dit artikel zullen we u meer proberen bij te brengen over toelatingen en eigendomsrechten voor het bestandensysteem van WordPress: wat zijn het, waarom zijn ze belangrijk, en hoe kunnen ze opgezet worden? U zult enkele basisprincipes aanleren die ik zelf opvolg opdat mijn bestandensysteem intact zou blijven. We zullen ook de twee meest voorkomende WordPress serverconfiguraties behandelen. We zullen uitleggen waarin ze verschillen, maar nog belangrijker, hoe u het best de toelatingen en de eigendomsrechten ervoor instelt.

Terminal vs. FTP client

In de loop van dit artikel zullen we de terminal gebruiken om de toelatingen en de eigendomsrechten te veranderen. Waarom we in de plaats daarvan geen FTP client gebruiken? De reden is dat FTP een beetje te beperkt is voor wat we nodig hebben. FTP kan gebruikt worden voor de transfers van bestanden en om de toelatingen van bestanden en mappen te wijzigen, maar het kan niet gebruikt worden om de instellingen van de eigendomsrechten te veranderen.

Om de commando’s uit te voeren die vermeld worden in dit artikel, moet u ingelogd zijn op uw server, met gebruik van het SSH commando. Indien u niet gewoon bent aan de terminal en aan het SSH commando, dan kunt u er meer over te weten komen in het artikel Introduction to Linux Commands.

Gebruikers en groepen

Eerst en vooral, moeten we u iets meer vertellen over gebruikers en groepen, want deze gaan echt samen wanneer toelatingen geconfigureerd worden.

Om het simpel te houden, een account, dat is in feite een gebruiker die toegang heeft tot de computer, en een groep is enkel de identificatie van een zekere groep gebruikers. Dit houdt in dat iedere keer wanneer u een transfer van bestanden uitvoert met behulp van FTP, dat u dan een gebruikersaccount op uw server aan het gebruiken bent. En afhankelijk van hoe uw host uw account heeft opgezet, behoort u (de gebruiker) tot een of meerdere groepen. Gebruikers en groepen, zijn zoals gebruikers en rollen in WordPress. Conceptueel zijn beiden hetzelfde, behalve dat de eerste op uw server gebruikt wordt.

Gebruikers en groepen zijn belangrijk, omdat ze de privileges helpen te bepalen voor al uw bestanden en mappen. De eigenaars van de bestanden zullen er normaal de volledige privileges op hebben. Andere gebruikers die tot dezelfde groep behoren zullen er minder rechten op hebben, en het kan ook zijn dat alle andere er helemaal geen rechten op hebben. Deze rechten zijn wat wij toelatingen noemen.

Wat zijn bestandstoelatingen?

Toelatingen schrijven voor wat gebruikers kunnen doen met een bestand. Een toelating wordt voorgesteld door middel van een aantal cijfers, zoals 644 of 777, hierna wordt hier naar verwezen als de permissiemodus. Wanneer u al eerder plug-ins gebruikt hebt in WordPress, dan werd u waarschijnlijk gevraagd door bepaalde plug-ins om uw toelatingen te wijzigen voor een bestand of een directory omdat de plug-in er niets kon in wegschrijven. Door de toelatingen van het bestand te wijzigen, laat u de webserver toe om toegang te bekomen tot dit bestand of deze map.

U kunt het best de permissiemodus beschouwen als een soort van ‘wie kan wat doen’ bepalingen, waarin elk cijfer overeen komen met het ‘wie’ gedeelte van de bepaling.

  • Het eerste cijfer

Wat de gebruiker van de account die eigenaar is van het bestand kan doen

  • Het tweede cijfer

Wat andere gebruikersaccounts uit de groep van de eigenaar kunnen doen

  • Het derde cijfer

Wat de gebruikersaccounts van alle anderen kunnen doen (inbegrepen de bezoekers van de website)

Vervolgens correspondeert het nummer met het “wat” gedeelte van de bepaling en het is de som van de combinatie van elk van deze cijfers.

  • 4

Lees een bestand, of lees de namen van een bestand in een map

  • 2

Schrijf of wijzig een bestand, of wijzig de inhoud van een map

  • 1

Voer een bestand uit, of laat het lopen, of krijg toegang tot een bestand in een map.

Deze cijfers zijn de voorkeuren die toegekend zijn aan de ‘wie’ in de permissiemodus. Let er in de bovenstaande lijst op dat privileges iets anders betekenen voor bestanden en mappen.

Het is tamelijk belangrijk om de juiste permissiemodus te gebruiken. Om dit nog beter te illustreren is het goed om even te denken aan de gebruikers en de rollen in WordPress. Op een WordPress website hebben schrijvers en beheerders verschillende sets van mogelijkheden. Schrijvers mogen nieuwe blogposts creëren, maar ze mogen geen nieuwe plug-ins toevoegen. Aan de andere kant mogen beheerders plug-ins toevoegen en ook nieuwe blogposts schrijven. De beheerders mogen zelfs het uitzicht van de website wijzigen wanneer ze daar zin in hebben. Een duidelijke lijn bepaalt wat gebruikers met verschillende rollen mogen doen. Dit is hetzelfde met permissiemodussen, behalve dat met in de plaats van met blogposts en opties voor de thema’s om te gaan, we te maken hebben met bestanden en mappen op de server.

Wijzigen van permissiemodussen

FTP clients bieden meestal een interface aan waarin u op een handige manier de permissiemodus kunt wijzigen van uw bestanden en mappen. Hier is een screenshot van de interface van mijn FTP client

Voorbeeld van een interface van een FTP client

Als u toegang hebt tot de terminal van uw server, dan kunt u ook het chmod command gebruiken om de permissiemodus van een bestand of map te wijzigen.

sudo chmod 644 <file>

Om de permissiemodus te wijzigen van alle bestanden en mappen, kunt u de use chmod in combinatie met het find commando gebruiken. Bijvoorbeeld kunt u dit doen om alle bestanden in 644 om te zetten.

sudo find . -type f -exec chmod 644 {} +

Of om het te gebruiken om al uw mappen in 755 te veranderen

sudo find . -type d -exec chmod 755 {} +

Verwijs naar de Changing File Permissions in the WordPress Codex als gids om de permissiemodussen te wijzigen.

Het verschil tussen 644 en 777

Laat ons eens kijken naar verschillende permissiemodussen en wel effect ze hebben op een website.

Wat zou een PHP script met permissiemodus 644 kunnen inhouden?
Wanneer wij de bovenstaande uitleg volgen van hoe permissiemodussen werken, dan kunnen we ontcijferen wat deze modus toelaat aan gebruikers om iets te wijzigen aan ons script.

De rechten van de eigenaar worden “gelezen” (4) + “geschreven” (2) = 6

De groepsrechten van de eigenaar worden “gelezen” (4) = 4

De rechten van alle andere worden“gelezen” (4) = 4

In mensentaal betekent dit dat:

Wanneer we eigenaar zijn van het script, kunnen we het lezen en aanpassen

Alle anderen kunnen het alleen lezen

Zoals we kunnen afleiden is 644 een goede permissiemodus voor een PHP script. We kunnen het aanpassen en onze webserver kan het lezen.

Laten we nu eens kijken naar mappen. Wat als we eigenaar zouden zijn van een map met permissiemodus 777. Deze permissiemodus kan als volgt ontleed worden.

  • De rechten van de eigenaar zijn “lezen” (4), “schrijven” (2), en “uitvoeren” (1) = 7
  • De rechten van de eigenaar in de groep zijn “lezen” (4), “schrijven” (2) en “uitvoeren” (1) = 7
  • De rechten van alle anderen zijn “lezen” (4), “schrijven” (2) en “uitvoeren” (1) = 7

Dit betekent dat iedereen de lijst van de bestandsnamen in onze map kan verkrijgen

Dat iedereen een bestand mag aanmaken, deleten en aanpassen in onze map

Dat iedereen toegang heeft tot de bestanden in onze map

Het is overduidelijk dat 777 geen goede permissiemodus is voor wat dan ook op onze WordPress site omdat gelijk welke bezoeker in staat zou zijn om bestanden aan onze directory toe te voegen of zelfs om scripts te deleten. Erger nog, iedereen zou in staat zijn om kwaadaardige code toe te voegen en onze website te compromitteren.

WordPress Server configuraties

Nu weten we iets meer over permissies en hoe we ze lezen. Maar vooraleer we beginnen met het wijzigen van al onze permissies, moeten we inzicht hebben in de set-up van onze server. Omdat permissies te maken hebben met gebruikersaccounts en groepen, moeten we weten hoe onze WordPress website draait.

Er bestaan een heleboel server configuraties. Verschillende configuraties hebben behoefte aan verschillende sets van permissiemodussen omdat WordPress correct en veilig zou kunnen werken. We zullen alleen de twee meest gebruikte configuraties en de juiste permissies ervoor bespreken.

Standaard Server Configuratie

  • U hebt een gebruikersaccount
  • Uw webserver draait als een bijkomende gebruikersaccount

Gedeelde serverconfiguratie of  suEXEC configuratie

  • U hebt een gebruikersaccount
  • Andere mensen die de server gebruiken, hebben gebruikersaccounts en delen mogelijk dezelfde groep met uw gebruikersaccount.
  • Uw webserver draait als de eigenaar van uw WordPress bestanden

Het voornaamste verschil tussen deze twee is hoe dat uw webserver draait.

Permissies voor een standaard WordPress server configuratie

Standaard WordPress server configuraties, daar is een beetje meer werk aan dan gedeelde serverconfiguraties omdat de webserver geen relatie heeft met onze gebruikersaccount.

Bestanden en mappen eigendom voor WordPress

Eerst moeten we de eigendomsrechten voor bestanden en mappen aanpassen van onze WordPress bestanden. We moeten zeker zijn van het volgende:

  • Dat uw gebruikersaccount de eigenaar is van alle WordPressbestanden in de mappen
  • Dat uw gebruikersaccount en de gebruikersaccount van de webserver tot dezelfde groep behoren.

Om erachter te komen tot welke groepen uw gebruikersaccount behoort kunt u dit commando gebruiken in de terminal van uw server.

groups

Vervolgens om er achter te komen tot welke groepen uw gebruikersaccount behoort, kan u tijdelijk dit stukje php in uw WordPress scripts invoegen:

echo exec( ‘groups’ );

Wanneer uw gebruiker en de webserver niet tot dezelfde groep behoren, kunt u het volgende commando gebruiken in de terminal om uw gebruiker toe te voegen aan een van de groepen van uw webserver.

sudo usermod -a -G <a-common-group-name> myuser

Tenslotte, om er zeker van te zijn dat alles in onze WordPress map tot onze gebruikersaccount behoort, en de gedeelde groep die we juist toegevoegd hebben, is het nodig om het volgende commando in onze WordPress map toe te passen:

sudo find . -exec chown myuser:a-common-group-name {} +

Permissies voor WordPress

Al onze bestanden en mappen zouden nu de juiste eigenaars moeten hebben. Nu is het tijd om de permissiemodussen aan te passen. Om de dingen eenvoudiger te maken, is het alleen nodig om het volgende te onthouden:

  • Alle bestanden zouden 664 moeten zijn
  • Alle mappen zouden 775 moeten zijn
  • wp-config.php zou 660 moeten zijn

Hier vindt u wat we trachten te bewerkstelligen met deze permissiemodussen.

  • Onze gebruikersaccount kan bestanden lezen en aanpassen
  • WordPress (via onze webserver) kan onze scripts lezen en aanpassen
  • WordPress kan bestanden en mappen creëren, lezen en aanpassen

Andere mensen mogen de identificatiegegevens van onze database niet zien in wp-config.php.

U zou kunnen denken dat het toekennen van volledige rechten op onze mappen aan WordPress niet veilig is. Maakt u zich geen zorgen, we doen dit omdat WordPress bepaalde gegevens nodig heeft om bestanden te creëren en aan te passen. WordPress staat ons toe om sjablonen en plug-ins te uploaden en te verwijderen zonder zelfs het script en stijl aan te passen vanuit het beheersperspectief. Zonder dit soort van toelating, zouden we sjablonen en plug-ins manueel moeten uploaden iedere keer dat we FTP gebruiken.

U kunt uw FTP client gebruiken om uw permissiemodussen aan te passen, of u kunt de volgende commando’s gebruiken in uw WordPress directory om te toelatingen van al uw bestanden en mappen vlug aan te passen:

Hou er rekening mee dat sommige web servers strikter zijn dan anderen. Wanneer uw web server strikt is, dan zou het kunnen dat wanneer u overweegt om de wp-config.php in 660 te wijzigen, dat dan uw website niet meer werkt. In dit geval, laat u gewoon de 664 staan.

Permissies voor een gedeelde server configuratie OrSuEXEC

Permissies voor een gedeelde server configuratie zijn gemakkelijker te implementeren. We blijven niet stilstaan bij de eigendomsrechten, omdat de webserver draait als de eigenaar van onze bestanden en mappen. Omdat onze gebruikersaccount en de webserver dezelfde toelatingen delen (ze zijn alle twee de eigenaar), kunnen we meteen verdergaan naar het aanpassen van de permissiemodussen:

  • Alle bestanden zouden 644 moeten zijn
  • Alle mappen zouden 755 moeten zijn
  • wp-config.php zou 600 moeten zijn.

In analogie met de vorige permissiemodussen, kunnen deze als volgt beschreven worden:

  • Onze gebruikersaccount kan onze bestanden lezen en aanpassen
  • WordPress kan onze scripts aanpassen en wijzigen (Via de webserver en als eigenaar van de gebruikersaccount)
  • WordPress kan onze mappen en bestanden aanmaken, aanpassen of verwijderen
  • Andere mensen kunnen de kenmerken van onze database niet aanpassen in wp-config.php.

Nogmaals, u kunt de FTP-client gebruiken om de permissiemodussen aan te passen, of u kunt de volgende commando’s in de WordPress directory gebruiken om de permissies van alle bestanden en mappen snel aan te passen.

Gelijkaardig aan de standaard WordPress server configuratie, kan uw server strikter zijn ingesteld dan anderen, en misschien laat hij niet toe dat wp-config.php 600 is. In dit geval kunt u het een beetje vrijer instellen op 640, en als dat nog niet werkt, dan kunt u het instellen op 644.

Wanneer u altijd deze richtlijnen volgt, dan zullen uw WordPress bestanden beveiligd zijn tegen indringers.

Veel voorkomende valkuilen

Een veelvoorkomende fout die mensen maken is de map van de uploads in te stellen op 777. Sommigen doen dit omdat ze een foutmelding krijgen wanneer ze proberen om een afbeelding te uploaden naar hun website, en 777 lost dit probleem vlug op.

Maar geef nooit ongegrensde toegang voor iedereen, of anders wordt de webserver kwetsbaar voor aanvallen. Wanneer u de richtlijnen opvolgt, die in dit artikel aanbod komen, dan zult u geen problemen ondervinden om files naar uw website te uploaden.

Soms kan het echter voorkomen dat een plug-in vraagt dat een bestand op 777 gezet wordt. Wanneer dit voorkomt, kunt u het tijdelijk instellen op 777, maar u dient het wel terug in de oorspronkelijke permissiemodus te zetten wanneer u klaar bent.

Besluit

We hebben nu wat bijgeleerd over de juiste toelatingen en eigendom van bestanden bij een WordPressite. We hebben ook geleerd om de permissiemodus 777 te vermijden omwille van het feit dat dit de webserver in gevaar kan brengen.

Hopelijk kunt u deze tips toepassen om uw WordPress site veilig en stabiel te houden. Als u nog bijkomende tips hebt over toelatingen en veiligheid, gelieve ze dan te willen delen in de reacties hieronder.

About The Author

Peter Kuipers

Peter is WordPress fanaat, Hosting en Linux specialist en uitgever van diverse online magazines. Daarnaast houd hij van Lekker eten, woont sinds kort in Oostende, en bezoekt regelmatig een WP Meetup.

Door de site te te blijven gebruiken, gaat u akkoord met het gebruik van cookies. meer informatie

Deze site gebruikt cookies om haar services te leveren, advertenties te personaliseren en verkeer te analyseren. Informatie over je gebruik van deze site wordt gedeeld met Google. Als je deze site gebruikt, ga je akkoord met het gebruik van cookies.

Sluiten