Workflow: Bestanden & Rechtenbeheer (Universeel)¶
Deze handleiding legt uit hoe je bestanden en mappen overal in het systeem de juiste eigenaar, groep en rechten geeft, en hoe je zorgt dat toekomstige bestanden automatisch dezelfde instellingen erven.
Als voorbeeld wordt /var/www gebruikt, maar je kunt elke andere map of bestand invullen.
πΉ 1. Eigenaar & Groep instellen¶
Met chown stel je eigenaar en groep in.
π Vervang /pad/naar/map door jouw doelmap, bijvoorbeeld /var/www.
π Betekenis:
- root = eigenaar (mag altijd alles)
- www-data = groep (bijv. webservergroep of projectgroep)
πΉ 2. Basisrechten instellen¶
Met chmod stel je de rechten in. Voor samenwerkingsmappen is vaak 2775 geschikt:
π Betekenis van 2775:
- 2 = setgid bit β nieuwe bestanden/mappen krijgen automatisch de groep van de bovenliggende map.
- 7 = eigenaar (root) mag lezen, schrijven, uitvoeren.
- 7 = groep (bijv. www-data) mag lezen, schrijven, uitvoeren.
- 5 = anderen mogen lezen en uitvoeren.
Controleer met:
πΉ 3. Onderliggende bestanden/mappen corrigeren¶
Om bestaande bestanden en mappen onder de doelmap dezelfde groep en rechten te geven:
π Uitleg:
- -R = recursief (alle submappen/bestanden)
- g+rwX = geeft groep schrijfrechten + execute (X = alleen op mappen en uitvoerbare bestanden).
πΉ 4. Automatisch juiste rechten voor nieuwe bestanden¶
Dankzij het setgid-bit (chmod 2775) erven nieuwe bestanden de groep van de map.
Maar de rechten hangen ook af van de umask van de gebruiker.
Stel een umask in zodat bestanden altijd 664 en mappen 775 krijgen:
In /etc/profile of ~/.bashrc:
π Betekenis: - Bestanden: 666 - 002 = 664 (rw-rw-r--) - Mappen: 777 - 002 = 775 (rwxrwxr-x)
πΉ 5. Extra mogelijkheden¶
a) ACLβs (Access Control Lists)¶
Met ACLβs kun je nog fijnmaziger rechten toekennen.
Voorbeeld: groep www-data mag altijd lezen/schrijven in een map:
sudo apt install acl # als nog niet geΓ―nstalleerd
sudo setfacl -R -m g:www-data:rwx /pad/naar/map
sudo setfacl -dR -m g:www-data:rwx /pad/naar/map
π -m = toevoegen van rechten
π -d = default (geldt voor toekomstige bestanden)
Controleer ACLβs:
b) Alleen-lezen toegang voor anderen¶
Als alleen de groep mag schrijven maar anderen alleen mogen lezen, gebruik je 775.
π Dan hebben βanderenβ r-x rechten.
c) Specifieke submap voor uploads of gedeeld gebruik¶
sudo mkdir /pad/naar/map/uploads
sudo chown root:www-data /pad/naar/map/uploads
sudo chmod 2775 /pad/naar/map/uploads
Alle leden van groep www-data kunnen nu in uploads bestanden zetten.
πΉ 6. Belangrijkste commandoβs uitgelegd¶
-
chown gebruiker:groep bestand
β Wijzigt eigenaar en groep. -
chmod 2775 map
β Past rechten aan + setgid zodat nieuwe bestanden de groep erven. -
umask 002
β Zorgt dat nieuwe bestanden altijd groep-schrijfrechten krijgen. -
setfacl/getfacl
β Geavanceerd rechtenbeheer met ACLβs.
β Samenvatting Workflow¶
- Zet eigenaar & groep:
chown root:www-data /pad/naar/map - Zet rechten & setgid:
chmod 2775 /pad/naar/map - Corrigeer alles eronder:
chown -R root:www-data /pad/naar/map && chmod -R g+rwX /pad/naar/map - Stel umask in:
umask 002 - (Optioneel) Gebruik ACLβs voor nog meer controle.
π§ Bonus: Bash-script¶
Dit script pas je toe op een map naar keuze:
#!/bin/bash
# Gebruik: sudo ./rechten_workflow.sh /pad/naar/map gebruiker groep
MAP=$1
USER=$2
GROUP=$3
if [ -z "$MAP" ] || [ -z "$USER" ] || [ -z "$GROUP" ]; then
echo "Gebruik: $0 /pad/naar/map gebruiker groep"
exit 1
fi
echo "[INFO] Instellen eigenaar/groep..."
sudo chown -R $USER:$GROUP $MAP
echo "[INFO] Instellen rechten & setgid..."
sudo chmod 2775 $MAP
echo "[INFO] Corrigeren onderliggende bestanden..."
sudo chmod -R g+rwX $MAP
echo "[INFO] Klaar. Controleer met: ls -ld $MAP"
Opslaan als rechten_workflow.sh, uitvoerbaar maken met:
En uitvoeren bijvoorbeeld: