Bestandsrechten (Drupal)
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 niet onaardig:
#################################################################### # Bestandsrechten fixen #################################################################### # # Dit script is geschikt voor Drupal 7 & 8 # # Drupal 8: Er moet iets gefixet worden na 'drush si', want het theme # komt niet uit de verf, en af en toe verschijnt er een foutmelding # zoals: # # The specified file temporary://fileFZanvi could not be copied because # the destination directory is not properly configured. This may be # caused by a problem with file or directory permissions. More # information is available in the system log. # Eigenaar bijwerken ###################################################################### # sudo chown -R $eigenaar $wortel/* sudo chgrp -R $eigenaar $wortel/* sudo chown -R $eigenaar $wortel/.* sudo chgrp -R $eigenaar $wortel/.* # Mappen (algemeen) ###################################################################### # 'Other' moeten mappen kunnen executeren, anders werkt 'cd' niet # # * Eigenaar: mag alles (7) # * Group: mag nix # * Other: Lezen & executeren (x-x - 5) # sudo chmod -R 705 $(find $wortel -type d) # Bestanden (algemeen) ###################################################################### # * Eigenaar: Lezen & schrijven. Uitvoeren niet nodig # * Groep: Mag niets # * Other: Lezen. Niet schrijven of uitvoeren want veiligheidsprobleem # # 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 # sudo chmod -R 604 $(find $wortel -type f) # Map 'files' ###################################################################### # # Drupal/webserver gebruikt deze map om bestanden te plaatsen # # * Mappen - Other: Lezen, schrijven, executeren → 707 # * Bestanden - Other: Lezen, schrijven → 606 # sudo chmod -R 707 $(find $wortel/sites/default/files -type d) sudo chmod -R 606 $(find $wortel/sites/default/files -type f) # .drush-map fixen ###################################################################### # Om de haverklap wordt deze map niet-schrijfbaar voor Drush, # misschien door gebruik van 'sudo drush'. # sudo chown -R $eigenaar /home/$eigenaar/.drush sudo chgrp -R $eigenaar /home/$eigenaar/.drush sudo chmod -R 705 /home/$eigenaar/.drush