Overzicht
ACL's bieden flexibeler toegangscontrolebeheer dan het traditionele Unix-rechtenmodel (eigenaar, groep, anderen). U kunt expliciet toegangsrechten voor bestanden of mappen specificeren voor specifieke gebruikers of groepen. Dit is nuttig voor het voldoen aan complexe toegangsvereisten in omgevingen waar meerdere gebruikers bestanden delen.
Belangrijkste kenmerken
- Gedetailleerde toegangscontrole
- Rechten toekennen aan specifieke gebruikers/groepen
- Werkt samen met standaardrechten (umask)
- Mogelijkheid om standaard-ACL's voor mappen in te stellen
Installatie
De `acl`-functionaliteit zelf is ingebouwd in de Linux-kernel, maar om de commando's `getfacl` en `setfacl` te kunnen gebruiken, moet u het `acl`-pakket installeren. Op de meeste Linux-distributies is dit mogelijk niet standaard geïnstalleerd.
Debian/Ubuntu
sudo apt update && sudo apt install acl
Commando om het `acl`-pakket te installeren op Debian- of Ubuntu-gebaseerde systemen.
CentOS/RHEL/Fedora
sudo yum install acl
Commando om het `acl`-pakket te installeren op CentOS-, RHEL- of Fedora-gebaseerde systemen.
Gebruiksvoorbeelden
ACL's worden voornamelijk beheerd via de commando's `getfacl` (ACL's opvragen) en `setfacl` (ACL's instellen). Hieronder volgen enkele veelvoorkomende gebruiksvoorbeelden.
ACL van een bestand opvragen
getfacl my_file.txt
Gebruik het commando `getfacl` om de huidige ACL van een specifiek bestand of map te bekijken.
Lees-/schrijfrechten toekennen aan een specifieke gebruiker
setfacl -m u:user1:rw my_file.txt
Gebruik de optie `setfacl -m` om de gebruiker 'user1' lees- (r) en schrijf- (w) rechten toe te kennen voor 'my_file.txt'.
Uitvoeringsrechten toekennen aan een specifieke groep
setfacl -m g:dev_group:x my_script.sh
Gebruik de optie `setfacl -m` om de groep 'dev_group' uitvoeringsrechten (x) toe te kennen voor 'my_script.sh'.
ACL-vermelding verwijderen
setfacl -x u:user1 my_file.txt
Gebruik de optie `setfacl -x` om de ACL-vermelding voor 'user1' te verwijderen.
Standaard-ACL instellen voor een map
setfacl -m d:u:user2:rwx my_directory/
Stel een standaard-ACL in voor een map, zodat nieuw aangemaakte bestanden of mappen een specifieke ACL erven. Gebruik het voorvoegsel `d:`.
Alle ACL's verwijderen
setfacl -b my_file.txt
Gebruik de optie `setfacl -b` om alle uitgebreide ACL-vermeldingen van een bestand of map te verwijderen en terug te keren naar de traditionele rechten.
Tips & Aandachtspunten
Bij het gebruik van ACL's is het belangrijk om de interactie met het bestaande rechtenmodel te begrijpen.
ACL's en traditionele rechten
- De uitvoer van `ls -l` voor bestanden/mappen met ACL's heeft een `+`-symbool aan het einde van de rechtenreeks.
- ACL's voegen extra rechten toe bovenop de traditionele rechten (eigenaar, groep, anderen). De `mask`-vermelding beperkt de maximale effectieve rechten van de ACL.
- Het te complex instellen van ACL's kan het beheer van rechten bemoeilijken, dus gebruik ze voorzichtig en alleen wanneer nodig.
Begrip van de mask-vermelding
Wanneer u een ACL instelt, wordt de `mask`-vermelding automatisch aangemaakt of bijgewerkt. Dit `mask` definieert de maximale effectieve rechten die worden toegekend aan de gebruikers- (u:), groep- (g:), benoemde gebruiker- (u:name:) en benoemde groep- (g:name:) vermeldingen. Zelfs als u meer rechten probeert toe te kennen dan in het `mask` staan, worden deze beperkt door het `mask`. U kunt het `mask` handmatig instellen, bijvoorbeeld met `setfacl -m m::rw`.
Bestandssysteemondersteuning
Om ACL's te kunnen gebruiken, moet het bestandssysteem ACL's ondersteunen. De meeste moderne Linux-bestandssystemen, zoals ext2, ext3, ext4 en XFS, ondersteunen ACL's. Mogelijk moet u controleren of de `acl`-optie is ingeschakeld bij het koppelen van het bestandssysteem (bijvoorbeeld in `/etc/fstab`).