Bestandsrechten (Drupal): verschil tussen versies

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen
Regel 1: Regel 1:
 
Het is belangrijk om te weten hoe rechten rondom bestanden en mappen in een Drupal-installatie ingesteld moeten zijn. Dat kan veel frustratie schelen.
 
Het is belangrijk om te weten hoe rechten rondom bestanden en mappen in een Drupal-installatie ingesteld moeten zijn. Dat kan veel frustratie schelen.
  
* Doorgaans zal de webserver onder een ander account draaien dan dat van de beheerder die de bestanden en mappen heeft aangemaakt. Daardoor moeten rechten doorgaans aangepast worden na bv. een migratie of handmatige aanpassingen. Het webserver-account valt qua bestandsrechten in de categorie <code>other</code>
+
* Doorgaans zal de webserver onder een ander account draaien dan 'ik' of de beheerder. Daardoor valt het in de categorie ''overig''. Bij het instellen van rechten, heb je drie entiteiten: ''Eigenaar'', ''Groep'' en ''Overig/Other''. Het gaat in dit hoofdstuk alleen om deze laatste entiteit.
 
* Mappen moeten altijd executeerbaar zijn, anders werkt commando <code>cd</code> niet
 
* Mappen moeten altijd executeerbaar zijn, anders werkt commando <code>cd</code> niet
  
== Instellingen ==
+
== Map <code>files</code> ==
 
 
=== Map <code>files</code> ===
 
  
 
* Mappen moeten altijd beschrijfbaar en executeerbaar zijn
 
* Mappen moeten altijd beschrijfbaar en executeerbaar zijn
* Bestanden moeten beschrijfbaar zijn.
+
* Bestanden moeten beschrijfbaar zijn
 +
* Bestanden hoeven waarschijnlijk niet executeerbaar zijn
  
 
Wat in ieder geval werkt:
 
Wat in ieder geval werkt:
  
 
  sudo chmod -R 707 /home/.../files
 
  sudo chmod -R 707 /home/.../files
 +
 +
Maar waarschijnlijk beter:
 +
 +
<pre>
 +
sudo chmod -R 707 $(find $wortel/sites/default/files -type d)
 +
sudo chmod -R 606 $(find $wortel/sites/default/files -type f)
 +
</pre>
 +
  
 
=== Map <code>modules</code> ===
 
=== Map <code>modules</code> ===

Versie van 11 jan 2016 16:25

Het is belangrijk om te weten hoe rechten rondom bestanden en mappen in een Drupal-installatie ingesteld moeten zijn. Dat kan veel frustratie schelen.

  • Doorgaans zal de webserver onder een ander account draaien dan 'ik' of de beheerder. Daardoor valt het in de categorie overig. Bij het instellen van rechten, heb je drie entiteiten: Eigenaar, Groep en Overig/Other. Het gaat in dit hoofdstuk alleen om deze laatste entiteit.
  • Mappen moeten altijd executeerbaar zijn, anders werkt commando cd niet

Map files

  • Mappen moeten altijd beschrijfbaar en executeerbaar zijn
  • Bestanden moeten beschrijfbaar zijn
  • Bestanden hoeven waarschijnlijk niet executeerbaar zijn

Wat in ieder geval werkt:

sudo chmod -R 707 /home/.../files

Maar waarschijnlijk beter:

sudo chmod -R 707 $(find $wortel/sites/default/files -type d)
sudo chmod -R 606 $(find $wortel/sites/default/files -type f)


Map modules

De mappen sites/all/modules en sites/default/modules moeten beschijfbaar zijn voor derden ivm. installatie/onderhoud modules middels drush.

Appendix: Script

Er zitten nog wat fouten in, maar werkt verder niet onaardig:

#!/bin/sh
#
# Configureer bestandskenmerken van een Drupal-installatie
#
# Aanpak: 
# 1. Begin met standaard-instellingen
# 2. Verfijn

#################################################
# Variabelen
#################################################
#
# Gebruik geen ~, want fouten bij gebruik 'sudo'
#
map="/home/account/public/example.com/public"
eigenaar="debaas"

#################################################
# Configureer eigenaar. Soms is dat namelijk root
#################################################
#
chown -R $eigenaar $map/*
chgrp -R $eigenaar $map/*

#################################################
# Algemeen - Mappen
#################################################
#
# Eigennaar mag alles (7)
# Group mag nix (0)
# Other: r-x (5)
#
chmod 705 $(find $map -type d)

#################################################
# Algemeen - Bestanden
#################################################
#
# Eigennaar mag alles maar hoeft niet te kunnen executeren (6)
# Group mag nix (0)
# Other mag alleen lezen r-- (4)
# Dit geldt ook voor .htaccess
#
# Dit geeft foutmeldingen, omdat chmod niet overweg kan met spaties:
# Die belanden op een aparte regel.
# Moet ik escapen op een of andere manier
#
chmod 604 $(find $map -type f)

#################################################
# Map 'files'
#################################################
#
# 'Other' krijgt schrijftoegang op map-niveau
#
chmod 707 $(find $map/sites/default/files -type d)

#################################################
# sites/all/modules & sites/default/modules
#################################################
#
# 'Other' krijgt schrijftoegang op map-niveau
#
chmod 707 $(find $map/sites/alles/modules -type d)
chmod 707 $(find $map/sites/default/modues -type d)