Metamodeling
and its Applications
tud

Access Control Lists ermöglichen ein flexible Rechtevergabe auf Dateisystemen. Das Windows Dateisystem NTFS setzt beispielsweise ACLs ein, um den Zugriff auf Dateien und Ordnern für eine beliebige Menge von Gruppen oder Personen zu erlauben bzw. zu verbieten. Auch in Java sind ACLs als Paket verfügbar und erlauben die Definition von Zugriffsrechten auf Datenstrukturen.

Diese Einführung beschäftigt sich mit dem SunOS-Dateisystem UFS.

Einige weitere Informationen finden sich unter folgenden Links:

Darstellung der aktuellen Rechte

Wenn man sich per ls -l eine Dateiliste anzeigen lässt, dann zeigen die ersten Spalten die "normalen" Unix-Rechte. Zuerst kommt der Typ der Datei, dann rwx für den Benutzer, die Gruppe und den Rest. Wenn darauf noch ein "+" folgt hängt an dem entsprechenden Dateiobjekt eine ACL, welche die Rechte feiner definiert. Diese kann man sich mit getfacl <dateiobjekt> anzeigen lassen.

Setzen der Rechte

Mit setfacl <option> <acl_entries> <file> können die Rechte modifizert werden. Es gibt folgende Optionen:

Die einzelnen "acl_entries" werden per Komma getrennt. Sie folgen alle dem selben Aufbau: [d:]<type>:<id>:<permissions>

Beispiel

Um beispielsweise ein CVS-Repository in seinem Home-Verzeichnis abzulegen und eine Liste von Benutzern den vollen Zugriff darauf zu gewähren, muß Folgendes getan werden:

/home/girschik $ chmod g+x .
/home/girschik $ mkdir cvsrep
/home/girschik $ setfacl -s u::rwx,g::---,o:---,m:rwx cvsrep
/home/girschik $ setfacl -r -m u:mmerz:rwx cvsrep
/home/girschik $ getfacl cvsrep
# file: cvsrep
# owner: girschik
# group: student
user::rwx
user:mmerz:rwx          #effective:--x
group::--x              #effective:--x
mask:--x
other:---
/home/girschik $ cvs -d ~girschik/cvsrep init
/home/girschik $ cd cvsrep
cvsrep $ ls -la
total 8
drwx--x---+  3 girschik student      512 Nov 12 14:09 .
drwx--x---  22 girschik student     1536 Nov 12 14:07 ..
drwxrwxr-x   3 girschik student     1024 Nov 12 14:09 CVSROOT
cvsrep $  
home freigeben (kann auch per ACLs gemacht werden)
Ordner für Repository anlegen
ACL und Maske setzen
Benutzer der ACL hinzufügen, Maske neu berechnen
Rechte anschauen








Repository initialisieren