In combinatie met verbeteringen als snapshots, biedt FreeBSD de veiligheid van Toegangscontrolelijsten voor Bestandssystemen (Access Control Lists, ACLs).
Met toegangscontrolelijsten wordt het standaard UNIX® rechtenmodel uitgebreid op een zeer verenigbare (POSIX®.1e) manier. Deze methodes stellen een beheerder in staat om gebruik te maken en voordeel te halen uit een geraffineerder beveiligingsmodel.
Om ondersteuning voor ACLs voor bestandssystemen in te schakelen dient het volgende in de kernel gecompileerd te worden:
options UFS_ACL
Als deze optie niet aanwezig is, dan wordt er een
waarschuwing weergegeven als er wordt geprobeerd een
bestandssysteem aan te koppelen dat gebruik maakt van
ACLs. Deze optie is al geactiveerd in de
GENERIC
kernel. ACLs
zijn afhankelijk van uitgebreide attributen die zijn ingeschakeld
op het bestandssysteem. Uitgebreide attributen worden standaard
ondersteund in het volgende generatie UNIX® bestandssysteem
UFS2.
Er is meer administratieve rompslomp nodig om uitgebreide attributen in te stellen op UFS1 dan op UFS2. De prestaties van uitgebreide attributen zijn op UFS2 ook veel beter. Daarom wordt UFS2 ook meestal aangeraden boven UFS1 bij het gebruik van toegangscontrolelijsten.
ACLs worden ingeschakeld door de
beheersvlag acls
op het moment van aankoppelen.
Dit kan ook in /etc/fstab
staan. De vlag op
het moment van aankoppelen kan ook automatisch gezet worden op een
persistente wijze met tunefs(8) door een superblok in de
bestandssysteemkop te wijzigen. In het algemeen wordt de
voorkeur gegeven aan de vlag in het superblok om een aantal
redenen:
De ACLs vlag op het moment van
aankoppelen kan niet gewijzigd worden bij opnieuw aankoppelen
(mount(8) -u
), maar alleen door een
volledige umount(8) en een verse mount(8). Dit
betekent dat ACLs niet ingeschakeld kunnen
worden op root-bestandssysteem na het opstarten. Het betekent
ook dat de aard van een bestandssysteem niet veranderd kan
worden als het eenmaal in gebruik is.
Het inschakelen van de superblokvlag zorgt ervoor dat
het bestandssysteem altijd wordt aangekoppeld met de
ACLs ingeschakeld, zelfs als het niet in
fstab
staat of als de apparaten van
plaats veranderen. Hiermee wordt voorkomen dat het
bestandssysteem wordt gebruikt zonder dat
ACLs ingeschakeld zijn, wat ervoor zou
kunnen zorgen dat ACLs onjuist worden
toegepast wat weer kan zorgen voor
beveiligingsproblemen.
Wellicht wordt het mogelijk om de ACLs via de vlag in te schakelen zonder een compleet verse mount(8), maar de ontwikkelaars vinden het wenselijk om het per ongeluk zonder ACLs aankoppelen te ontmoedigen, omdat er bijzonder vervelende gevolgen kunnen zijn als ACLs worden ingeschakeld, daarna worden uitgezet en weer worden ingeschakeld zonder dat de uitgebreide attributen worden geschoond. In het algemeen geldt dat als ACLs eenmaal zijn ingeschakeld voor een bestandssysteem, ze niet meer uitgeschakeld moeten worden, omdat de resulterende bestandsbescherming wellicht niet compatibel is met dat wat gebruikers van het systeem nodig hebben en het opnieuw aanzetten van ACLs kan leiden tot het opnieuw koppelen van voorheen bestaande ACLs aan bestanden waarvoor de toegangsrechten sindsdien zijn aangepast, wat kan leiden tot onverwachte situaties.
Bestandssystemen waarvoor ACLs zijn
ingeschakeld worden weergegeven met een +
(plus) teken als de toegangsrechten worden bekeken:
drwx------ 2 robert robert 512 Dec 27 11:54 private drwxrwx---+ 2 robert robert 512 Dec 23 10:57 directory1 drwxrwx---+ 2 robert robert 512 Dec 22 10:20 directory2 drwxrwx---+ 2 robert robert 512 Dec 27 11:57 directory3 drwxr-xr-x 2 robert robert 512 Nov 10 11:54 public_html
Hierboven is te zien dat mappen
directory1
,
directory2
en
directory3
allemaal gebruik maken
van ACLs. De map
public_html
doet dat niet.
De ACLs van het bestandssysteem kunnen
bekeken worden met het hulpprogramma getfacl(1). Om de
ACL op het bestand test
te bekijken zou het volgende commando nodig zijn:
%
getfacl test
#file:test #owner:1001 #group:1001 user::rw- group::r-- other::r--
Om de ACL op dit bestand te wijzigen wordt het hulpprogramma setfacl(1) als volgt gebruikt:
%
setfacl -k test
De vlag -k
verwijdert alle bestaande
ACLs van een bestand of bestandssysteem. De
methode die de voorkeur geniet is -b
gebruiken
omdat die optie de basisvelden die nodig zijn voor het laten
werken van de ACLs laat staan.
%
setfacl -m u:trhodes:rwx,group:web:r--,o::--- test
Bij het commando hierboven, werd de optie
-m
gebruikt om de standaard
ACL aan te passen. Omdat er geen
voorgedefinieerde instellingen waren, die waren verwijderd door
het commando daarvoor, werden nu de standaardinstellingen
hersteld en de rechten die werden aangegeven toegevoegd. Let
op dat bij het toevoegen van een gebruiker of een groep die
niet bekend is op het systeem een foutmelding
Invalid argument wordt geschreven naar
stdout
.
All FreeBSD documents are available for download at http://ftp.FreeBSD.org/pub/FreeBSD/doc/
Questions that are not answered by the
documentation may be
sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.