Inhaltsverzeichnis

ACLs unter NFS4

Auf den Linux-Arbeitsplatzrechnern werden Homeverzeichnisse, Arbeitsgruppenverzeichnisse und sonstige Netzlaufwerke mit NFS angebunden. Die nun verwendete Version NFS V4 benutzt zur Steuerung der Zugriffsrechte Access Control Lists (ACLs), die eine sehr genaue Festlegung der Rechte ermöglichen. So können etwa für eine Datei für mehrere User und Gruppen unterschiedliche Rechte vergeben werden, während reguläre Zugriffsrechte nur die Rechtevergabe für einen User, eine Gruppe und den „Rest der Welt“ zulassen.

Der Vorteil, den die ACLs unter NFSv4 gegenüber der bislang verwendeten Variante unter NFSv3 haben, ist der, dass die Rechtevergabe noch differenzierter möglich ist. Dazu wurden mehrere Parameter hinzugefügt. Diese sind unten aufgelistet:

Die ACLs sind hier ausführlich beschrieben. Für die ausführliche Beschreibung siehe den Unterpunkt: „Form von ACLs

Häufig verwendete Fälle

Der Ordner „testOrdner“ hat folgende ACLs:

$> nfs4_getfacl testOrdner
A:fdi:tstfb15@rbg.informatik.tu-darmstadt.de:rwadxtTnNcC
A::tstfb15@rbg.informatik.tu-darmstadt.de:rwadxtTnNcC
A:fdi:t_turu01@rbg.informatik.tu-darmstadt.de:rwaDdxtTnNcCo
A::t_turu01@rbg.informatik.tu-darmstadt.de:rwaDdxtTnNcCo
A:fdi:OWNER@:rwaDdxtTnNcCo
A::OWNER@:rwaDdxtTnNcCo

Auf diesem Ordner haben außer die besitzhabende Person (OWNER) noch zwei weitere User („tstfb15“ und „t_turu01“) vollen Zugriff.
Diese beiden Kennungen dürfen noch auf den Inhalt (Unterordner und Dateien) dieses Ordners
zugreifen, wegen des „f“- und „d“-Ace(Datei- und Ordnervererbung). D.h. jede Datei oder
jeder Ordner, die im Ordner „testOrdner“ erstellt werden, können durch „tstfb15“ und „t_turu01“
zugegriffen werden.


Um dem User „tstfb15“ die Rechte von der Datei „datei“ zu entziehen, geht man wie folgt vor:
Als erstens sieht man sich die Rechte an (um die entsprechende Zeile kopieren und einfügen zu können).

$> nfs4_getfacl datei
A::tstfb15@rbg.informatik.tu-darmstadt.de:rwadxtTnNcC
A::t_turu01@rbg.informatik.tu-darmstadt.de:rwadxtTnNcCo
A::OWNER@:rwadxtTnNcCo

Nun löschen wir die Zeile „A::tstfb15@rbg.informatik.tu-darmstadt.de:rwadxtTnNcC“ aus der ACL-Liste.

$> nfs4_setfacl -x A::tstfb15@rbg.informatik.tu-darmstadt.de:rwadxtTnNcC

Überprüfen

$> nfs4_getfacl datei
A::t_turu01@rbg.informatik.tu-darmstadt.de:rwadxtTnNcCo
A::OWNER@:rwadxtTnNcCo

Nun möchten wir dem User „tstfb15“ auf der Datei „datei“, die gleiche Rechte geben, wie dem User „t_turu01“:
Als Erstens sieht man sich die Rechte vom „t_turu01“ an:

$> nfs4_getfacl datei
A::t_turu01@rbg.informatik.tu-darmstadt.de:rwadxtTnNcCo
A::OWNER@:rwadxtTnNcCo

Die Zeile „A::t_turu01@rbg.informatik.tu-darmstadt.de:rwadxtTnNcCo“ kopieren und die Kennung durch „tstfb15“ ersetzen und wie folgt eingeben:

$> nfs4_setfacl -a A::tstfb15@rbg.informatik.tu-darmstadt.de:rwadxtTnNcCo datei

Nun hat der User „tstfb15“ gleiche Rechte auf der Datei „datei“.


Nun möchten wir die ACLs der Datei „datei“ modifizieren, so dass der Benutzer „tstfb15
kein Schreibrecht (w), sondern nur Leserecht (r) hat.
Erst die zu modifizierende Zeile „A::tstfb15@rbg.informatik.tu-darmstadt.de:rwadxtTnNcCo„kopieren:

$> nfs4_getfacl datei
A::tstfb15@rbg.informatik.tu-darmstadt.de:rwadxtTnNcCo
A::t_turu01@rbg.informatik.tu-darmstadt.de:rwadxtTnNcCo
A::OWNER@:rwadxtTnNcCo

Nun das eigentliche Kommando:

$> nfs4_setfacl -m A::tstfb15@rbg.informatik.tu-darmstadt.de:rwadxtTnNcCo A::tstfb15@rbg.informatik.tu-darmstadt.de:radxtTnNcCo datei

Überprüfen:

$> nfs4_getfacl datei
A::tstfb15@rbg.informatik.tu-darmstadt.de:radxtTnNcCo
A::t_turu01@rbg.informatik.tu-darmstadt.de:rwadxtTnNcCo
A::OWNER@:rwadxtTnNcCo

Form von ACLs

type:flags:principal:permissions

ACE TYPES werden mit einem Buchstabe repräsentiert:
- A Allow(Erlauben)
- D Deny(Verweigern)

ACE FLAGS: Es gibt drei unterschiedliche ACE Flags: „group“, „inheritence(Vererbung) und „administrative“. Es kann keine oder mehrere Flags gesetzt werden.
GROUP FLAG
g group - repräsentiert eine Gruppe (anstatt einzelner benutzender Personen).
INHERITANCE FLAGS
d directory-inherit - Die Rechte der neu erzeugten Unterordner werden geerbt.
f file-inherit - Die Rechte der neu erzeugten Dateien werden geerbt, ohne „inheritance-Flag“.
n no-propagate-inherit - Die Rechte der neu erzeugten Unterordner werden geerbt, ohne „inheritance-Flas“.

ACE PRINCIPALS: Ein „Principal“ kann eine Kennung (z.B. „t_turu01“), eine Gruppe, oder eine von drei speziellen „Principals“ OWNER, GROUP und EVERYONE sein.

ACE PERMISSIONS: Es gibt verschiedene ACE-Permissions (13 für Dateien, 14 für Ordner), die durch jeweils einen Buchstaben repräsentiert werden:

Parameter Bedeutung Gültigkeit
r read-data (Lesen einer Datei) / list-directory (Auflisten eines Ordner) Datei und Ordner
w write-data (Schreiben einer Datei) / create-file (Erstellen eines Ordner) Datei und Ordner
a append-data / Unterverzeichnisse erstellen Datei und Ordner
x Ausführen / Ordner verändern Datei und Ordner
d Löschen einer Datei oder eines Ordners Datei und Ordner
D Löschen einer Datei oder eines Unterordners von einem gegebenen Ordner nur für Ordner
t Eigenschaften von einer Datei oder einem Ordner lesen Datei und Ordner
T Eigenschaften von einer Datei oder einem Ordner setzen Datei und Ordner
n named-Attribute der Datei oder des Ordners lesen Datei und Ordner
N named-Attribute der Datei oder des Ordners setzen Datei und Ordner
c NFSv4-ACLs der Datei oder des Ordners lesen Datei und Ordner
C NFSv4-ACLs der Datei oder des Ordners schreiben Datei und Ordner
o Besitzer wechseln Datei und Ordner
y mit Server synchronisieren Datei und Ordner

Beispiel ACLs

 A::OWNER@:rwatTnNcCy
 A::alice@rbg.informatik.tu-darmstadt.de:rxtncy
 A::bob@rbg.informatik.tu-darmstadt.de:rwadtTnNcCy
 A:g:GROUP@:rtncy
 D:g:GROUP@:waxTC
 A::EVERYONE@:rtncy
 D::EVERYONE@:waxTC

Man kann die Vergabe von ACLs etwas erleichtern über das Kommando „nfs4_editfacl“. Vor dem Aufruf kann man mit „export EDITORT=[gedit|nano|vim] einstellen, mit welchem Editor man arbeiten möchte.

TODO - testen

Frech kopiert und angepasst von: Dokuwiki