CHMOD: hoe zit dat

Uit phpBB.nl Wiki
Ga naar: navigatie, zoeken

CHMOD van een bestand en/of een map levert vaak vraagtekens op. In dit artikel vindt u een uitleg van de diverse betekenissen.

De rechthebbenden

Bestanden en mappen hebben altijd een eigenaar en een groep. Rechten op een bestand of map worden altijd aan drie categorieën gebruikers toegewezen:

  • de eigenaar
  • de leden van de groep
  • de overige gebruikers

De rechten

Per categorie kun je aan een bestand drie soorten rechten toekennen:

  • 4 = lezen
  • 2 = schrijven
  • 1 = uitvoeren (voor bestanden, alleen van toepassing op CGI-scripts) / doorzoeken (voor mappen)

Door de verschillende rechten per categorie op te tellen en achter elkaar te plakken, krijg je de 3-cijferige chmod-codes, die in DirectAdmin in de Perm. kolom (permissies-kolom) staan.

Voorbeelden van rechten

  • Een bestand met rechten 644:
 - de eigenaar (6) kan dit bestand lezen en schrijven;
 - de leden van de groep (4) en de overige gebruikers (4) kunnen dit bestand alleen lezen.


  • Een map met rechten 750 (de standaard-instelling van de public_html map):
 - de eigenaar (7) kan bestanden lezen, nieuwe bestanden aanmaken en de map doorzoeken
   (lijst met bestanden opvragen);
 - de leden van de groep (5) kunnen bestanden lezen en de lijst met bestanden opvragen,
   maar geen nieuwe bestanden aanmaken;
 - de overige gebruikers (0) hebben geen toegang tot deze map en dus ook niet tot onderliggende bestanden.

Zelf een bestand of map aanmaken

  • Als je zelf via DirectAdmin of FTP een map aanmaakt/upload, dan krijgt die als eigenaar jouw gebruikersnaam en als groep Apache. De rechten worden op 755 gezet.
  • Als je zelf via DirectAdmin of FTP een bestand aanmaakt/upload, dan krijgt die als eigenaar jouw gebruikersnaam en als groep Apache. De rechten worden op 644 gezet.

Apache maakt een bestand of map aan

Als Apache een map of bestand aanmaakt, dan worden zowel de eigenaar als de groep op Apache gezet. De rechten (mappen: 755 / bestanden: 644) zijn gelijk aan de rechten van mappen/bestanden, die je zelf upload. Omdat jouw gebruikersnaam geen eigenaar is en ook niet tot de groep behoort, val je, als je dit soort mappen/bestanden wilt bewerken via FTP onder de "overigen". Je kunt in deze mappen dus standaard alleen bestanden lezen, maar geen nieuwe bestanden aanmaken, of bestaande bestanden aanpassen/verwijderen.

Als je een bestand in een door Apache aangemaakte map wilt bewerken/verwijderen, moet je de rechten van die map op 777 zetten, zodat jij als "overige" ook alle rechten in die map hebt. Het aan te passen bestand moet je op 666 zetten, zodat je als "overige" lees- en schrijfrechten hebt op dat bestand.

"Permission denied"-foutmelding

Een "Permission denied"-foutmelding bij een include of require_once functie geeft aan, dat het script (dat wordt uitgevoerd door gebruiker Apache) geen leestoegang heeft tot het bestand, dat geinclude moet worden. Controleer, wat de huidige rechten zijn van het bestand en wie de eigenaar en groep zijn. Waarschijnlijk is de eigenaar jijzelf en de groep Apache. Je moet het bestand dan 644 als rechten geven, zodat jij als eigenaar lees- en schrijfrechten houdt en de groep (= Apache) het bestand alleen kan lezen.

De rechten zien

Kijk naar hetgeen er in DirectAdmin staat achter een bestand of map in de kolommen UID (user ID = eigenaar) en GID (group ID = groep).

Fouten oplossen

De methode om een fout op te lossen is: volg vanaf de basis van je website (/domains/jedomeinnaam.nl/public_html/) (of dergelijke) de "route" tot het bestand, dat niet geinclude kan worden, en controleer of Apache wel lees- en zoekrechten heeft op alle tussenliggende mappen, en leesrechten heeft op het bestand.