Als je een website hebt, heb je naast je domein ook een stukje webruimte nodig waar je je website op kunt installeren. Dit wordt via je hostingpakket op een webserver gedaan. Deze webservers hebben een besturingssysteem waarmee je onder andere toegangsrechten kunt wijzigen met chmod. In dit kennisbank artikel leer je wat chmod precies is, en wat je er mee kunt doen.

Het is niet iets waar je je direct mee bezig houdt wanneer je een website maakt of laat maken. Rechten op mappen en bestanden. Wie mag wat doen? Veel lijkt als vanzelf te gaan. Heel veel processen zijn ook inderdaad geautomatiseerd, en je hoeft er bijna nooit naar om te kijken. Maar als er dan een probleem optreedt, weet je niet precies waar je het moet zoeken.

Zoals bijvoorbeeld als je een afbeelding in de Media bibliotheek van je WordPress website wilt uploaden, en dan de foutmelding krijgt dat dit niet lukt. Er zijn altijd mensen om je heen die je kunnen helpen om dit probleem op te lossen. Ook mij kan je hiervoor contacteren. Maar, kennis is kracht. Het is fijn als je voor jezelf weet wát er precies aan de hand is, en wat je er eventueel zelf tegen kan doen om het probleem op te lossen.

Index

Wat is Unix
Betekenis chmod
Toegangsrechten
Gebruikersklassen 
Rechten beheren met een FTP programma
Veelgebruikte codes
Bonus: Uitleg CGI en PHP

Wat is Unix

Een stukje geschiedenis: Ongeveer 50 jaar terug waren de computers nog niet zo compact als ze tegenwoordig zijn. Het waren vooral grote krachtige computers en servers. De thuiscomputer was natuurlijk ook niet een van de kleinste, maar in dit geval hebben we het over the big deal. Het grote werk. Letterlijk! Bedenk je eens in, een computer zo groot als een huis of als een voetbalstadion. Kun je het je voorstellen? Geen gekkigheid, dat was de realiteit van toen.

De afmetingen alleen al waren een hele uitdaging maar dat was nog niet alles. Zo hadden veel servers een eigen besturingssysteem dat draaide op software speciaal voor dié computer ontworpen en gebouwd. Er was nog maar weinig eenheid in. Dat gaf natuurlijk ook het probleem dat computers niet altijd goed met elkaar konden samenwerken. Ze spraken elkaars taal niet. Een besturingssysteem van het één kon niet werken op een andere computer. Er was geen compatibiliteit, en dat begon conflicten te geven. Het koste veel tijd en vooral heel veel geld om voor iedere server een besturingssysteem te ontwikkelen.

Had je een computer, dan was je er nog niet. Er waren zeker in het begin maar weinig mensen die jou konden vertellen hoe je een computer moest gebruiken. Tegenwoordig lijkt het bij de meeste mensen een tweede natuur. Je weet niet beter. Ook in de zakelijke wereld van servers en computers die grote processen moeten aansturen, zijn er tegenwoordig tal van specialisten te vinden. Dat was ooit anders!

De eerste 10 jaar werd er maar weinig geïnvesteerd in het aanpassen van de monsterlijke afmetingen. Maar softwarematig ging het wel al snel in vogelvlucht, en dat startte in 1969 toen een team van ontwikkelaars begon te werken aan de compatibiliteit problematiek.

Hun doel was een nieuw besturingssysteem ontwikkelen dat op meerdere computers gebruikt kon worden. Ze noemde het UNIX. Een van de belangrijkste eigenschappen was dat de code waarmee de software geschreven werd, zogezegd, gerecycleerd kon worden. Dat hield in: De code die gemaakt werd voor een bepaalde machine, kon (met diverse aanpassingen) ook op andere machines werken. Dat was tot nog toe niet mogelijk. Deze ontwikkeling was dus enorm grensverleggend maar daarnaast daalde de astronomische bedragen voor het ontwikkelen van een computer, ook significant.

Tot nu toe was alle beschikbare software geschreven in een codetaal die specifiek voor een bepaalde hardware ontwikkeld was, de machinetaal. Iets anders bestond er gewoonweg niet, dus moesten de ontwikkelaars met iets nieuws op de proppen komen om de problemen op te lossen. UNIX had enkel behoefte aan een klein stukje speciale code, dat aanpasbaar is naar behoefte van het gewenste besturingssysteem. Deze code werd geschreven in een abstractere programmeertaal, wat ze heel simpel C noemde. Deze C taal werd speciaal ontwikkeld om het UNIX systeem te maken. C en UNIX gaan daarom heel goed samen, en vormt tot op de dag van vandaag nog de basis van vele systemen. Daarmee werd het probleem verholpen.

Betekenis chmod

Chmod staat voor de afkorting Change Mode. Het is een programma dat begin jaren ’70 werd geïntroduceerd. Het programma wordt gebruikt om de rechten van bestanden of mappen te kunnen wijzigen. Met deze rechten kun je vaststellen of gebruikers het bestand (of in de map) mogen lezen, schrijven of uitvoeren. (Read, Write, Execute). Deze rechten kun je zelf wijzigen met behulp van een FTP programma of via de Bestandsbeheer in je cPanel (Control Panel)

Toegangsrechten

In Unix kent men drie basisrechten. Ieder van de hieronder genoemde gebruikersklassen kan eigen rechten toegewezen krijgen.

► Lezen (Read – r) r heeft waarde 4
Dit geeft een gebruiker leestoegang tot een bestand. Verder kan de gebruiker geen wijzigingen maken.

Schrijven (Write – w) w heeft waarde 2
Gebruikers die deze rechten krijgen mogen het bestand wijzigen. Als het een map betreft houdt het in dat de gebruiker submappen en bestanden aan mag maken.

Uitvoeren (eXecute – x) x heeft waarde 1
Wanneer een gebruiker deze rechten krijgt mag deze bestanden als programma uitvoeren en naar andere locaties gaan om te kijken wat voor inhoud de mappen en submappen hebben.

Geen rechten dit heeft de waarde 0

ToegangsrechtWaarde
Lezen (Read)4
Schrijven (Write)2
Uitvoeren (eXecute)1
Geen rechten0

Gebruikersklassen

Eigenaar (User) – Meestal de persoon die het bestand aangemaakt heeft. Deze wordt weergegeven in de gebruikersklasse met de letter ‘u’ van user.

Groep (Group) – Deze wordt toegekend wanneer er meerdere gebruikersaccounts op een server aanwezig zijn. Deze gebruikersklasse wordt met de letter ‘g’ weergegeven.

Publiek (Public) – Deze klasse wordt weergegeven met de letter ‘o’ van Others, maar vaak wordt deze klasse ook weergegeven als Public of als World. Echter blijft de klasse aanduiding de letter ‘o’.

Alle (All) – Wanneer een opdracht gegeven wordt voor alle bovenstaande gebruikersklassen, dan wordt het de symbolische notatie ‘a’ van All aan gegeven.

Cijfer 1Cijfer 2Cijfer 3
Hoort bij EigenaarHoort bij GroepHoort bij Publiek

► De rechten worden gegeven met CHMOD ### (Altijd 3 cijfers!)

Als je voor de eigenaar de rechten Read en Write in wilt stellen dan wordt je code dus 4+2=6.

Voorbeeld: CHMOD 644
► De 6 staat voor de rechten van de eigenaar (de eerste gebruiker) en is de optelsom van Lezen (r met waarde 4) en Schrijven (w met waarde 2). Het houdt in dat de eigenaar het bestand mag lezen en er naar mag schrijven (met andere woorden, wijzigingen aan mag brengen)

► Zoals net uitgelegd zijn er in totaal drie soorten gebruikers. Het tweede getal, de 4 staat voor de rechten van de tweede gebruiker, Groep. Getal 4 staat voor alleen lezen.

► Het derde getal dat ook een 4 heeft gekregen wordt toegewezen aan de derde gebruiker, Publiek (de rest van de wereld). Dit houdt in dat alle anderen het bestand ook alleen maar mogen lezen (mogen zien dus)

Rechten beheren met een FTP programma

Je zal wanneer je zelf gaat kijken meestal zien dat de rechten met deze getallen worden toegewezen. Maar de rechten met letters toekennen kan natuurlijk ook.

Voorbeeld: CHMOD 755
Stel dat je deze code ziet staan. Dan houdt dat in:
(4+2+1) (4+1) (4+1) met andere woorden: (rwx) (r-x) (r-x)

► CHMOD 755 geeft dus aan dat de eigenaar, de gebruiker, mag Lezen (r / 4) mag Schrijven (w / 2) en mag Uitvoeren (x / 1) Read, Write, Execute (rwx).
Groep mag alleen Lezen (r / 4) en Uitvoeren (x / 1) oftewel r-x.
► De rest, het Publiek, mag ook alleen Lezen (r / 4) en Uitvoeren (x / 1) oftewel r-x.

Wil je zelf eens gaan kijken in je FTP hoe dit er uit ziet? Log dan via FTP in op je website. Kies een willekeurige map. Klik er op met je rechter muisknop en kies dan voor Attributes (CHMOD) (ook vaak te bereiken met de short code Ctrl+O. Een nieuw menu zal openen, welke Change Attributes heet. Hier kun je precies zien welke rechten de gebruikersklassen hebben en welke Permissions code er bij hoort.

ToegangsrechtenWaardeCode
Geen0
Alleen uitvoeren 1x
Alleen schrijven 2w
Zowel schrijven + uitvoeren 3w-x
Alleen lezen 4r
Zowel lezen + uitvoeren5r-x
Zowel lezen + schrijven6r-w
Alle toegangsrechten7rwx

Veelgebruikte codes

De volgende codes zul je het vaakst tegenkomen.

CHMOD 644 – Dit is de standaard voor alle mappen en bestanden.
CHMOD 755 – Deze wordt gebruikt voor alle uitvoerbare CGI scripts.
CHMOD 644 – Deze wordt gebruikt voor alle uitvoerbare PHP scripts.

Bonus: Uitleg CGI en PHP

► CGI Scripts
Dit is een afkorting van Common Gateway Interface, een internettechnologie die het mogelijk maakt om in de webbrowser dynamisch gegevens op te vragen van de webserver. CGI is een standaard voor dataoverdracht tussen de cliënt en het programma.

► PHP Scripts
Dit is een server programmeertaal die kan worden uitgevoerd door webservers om dynamische websites te genereren. Binnen de scripttaal kunnen uiteenlopende bewerkingen worden uitgevoerd, zoals het ophalen en bewerken van informatie die is opgeslagen in een database.

Dit artikel is vooral ter informatie om uit te leggen wat alles precies inhoudt. Als je niet begrijpt hoe dit precies werkt, ga dan ook zeker niet zelf codes aanpassen. Verkeerd ingestelde rechten kunnen tot serieuze beveiligingsproblemen van je website leiden.

Voorbeeld: CHMOD 777 is iets wat je absoluut niet wilt. Daarmee geef je iedereen (Lees: vooral hackers), schrijf- en uitvoerrechten. Daarmee geef dus een vrijbrief om alles met je website te doen wat kwaadwillenden maar willen. Het geeft ze volledige toegang tot je website.


Dit artikel is op 17 april 2019 voor het laatst nagekeken op juistheid. Kom je er achter dat de gegevens niet (meer) kloppen? Neem dan alsjeblieft contact met mij op, zodat ik het per direct na kan kijken en aan kan passen.

Hulp nodig? Neem dan contact met mij op!

Wat vond je van dit artikel?

Je beoordeling is waardevol

Wil je meer van dit soort artikelen lezen?

Volg Digitaal Design dan op Social Media

Wat jammer dat je dit geen leuk artikel vond!

Ik zal mijn best doen om mijn artikelen te verbeteren.