Startpagina > Pakket- en systeembeheer > acl

ACL: Toegangscontrolelijstbeheer

ACL (Access Control List) is een functie van het Linux-systeem waarmee gedetailleerde rechten voor bestanden en mappen kunnen worden ingesteld. Naast de bestaande rechten voor gebruiker, groep en anderen, kunt u individuele lees-, schrijf- en uitvoerrechten verlenen of verwijderen voor specifieke gebruikers of groepen. `acl` zelf is geen commando, maar wordt voornamelijk beheerd via de commando's `getfacl` en `setfacl`.

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`).


Hétzelfde categoriecommando