Sowohl das GPFS als auch NFS unterstützen ACLs . Diese lassen sich auf dem Login-Node wie folgt setzen(Access Controll Lists). Diese können dazu verwendet werden, um neben den Standard-Dateiberechtigungen (Besitzer, Gruppe, Andere) einzelne Dateien oder ganze Ordner nur für bestimmte Nutzer oder Nutzergruppen freizugeben. Um die ACLs einer Datei oder eines Ordners zu bearbeiten, stehen verschiedene Kommandozeilentools zur Verfügung. Auf dem Login-Knoden lassen sich die ACLs mittels folgendem Kommando editieren:
Codeblock | ||||
---|---|---|---|---|
| ||||
nfs4_setfacl --edit $PATH |
...
zu verwenden, die sich allerdings in ihrer Syntax von nfs_setfacl
unterscheiden, und eventuell nicht alle Funktionen abbilden. (Siehe die dazugehörigen man-pages, sowie dazu man mmeditacl
, man mmputacl
, man mmgetacl
, oder https://www.ibm.com/support/knowledgecenter/en/STXKQY_4.2.1/com.ibm.spectrum.scale.v4r21.doc/bl1adm_mmputacl.htm)
Syntax (nfs4_setfacl)
Die ACLs bestehen aus mehreren Einträgen, welche jeweils die Berechtigungen für einen Nutzer oder eine Nutzergruppe spezifizieren. Zusätzlich zu den Berechtigungen kann die Funktionsweise der ACLs durch einen Typ oder verschiedene Flags beeinflusst werden. Die vollständige Syntax lautet:
Codeblock | ||||
---|---|---|---|---|
| ||||
type:flags:principal:permissions |
Typ
Es gibt vier verschiedene Typen an ACL-Einträgen, die die Bedeutung der Berechtigungen regeln:
...
Für uns sind nur die ersten beiden Typen relevant.
Flags
Flags steuern z.B. die Weitergabe / Vererbung der ACLs an Unterordner / Dateien:, oder erlauben es, eine Nutzergruppe statt einem einzelnen Nutzer zu spezifizieren
Flag | Bedeutung | Beschreibung |
---|---|---|
g | Gruppe | Der angegebene "Principal" ist eine Gruppe, kein Nutzer |
d | Verzeichnis-Vererbung | Vererbe die Berechtigungen an neue Unterverzeichnisse |
f | Dateivererbung | Vererbe die Berechtigungen an neue Dateien |
n | Einzelvererbung | Vererbe die Berechtigungen nur an Unterverzeichnisse der 1. Ebene |
i | Nur Vererbung | Die Berechtigungen gelten nur für neue Unterverzeichnisse / Dateien (entsprechend d oder f ) und nicht für das aktuelle Verzeichnis |
Principal
"Principal" ist der Nutzer (oder die Gruppe (entsprechend bei Verwendung von Flag g
) für den die Berechtigungen gelten. Es gibt zusätzlich drei Sondertypen: OWNER@
, GROUP@
und EVERYONE@
, die den POSIX-Berechtigungen ownerBesitzer / groupGruppe / other Andere entsprechen.
Berechtigungen
Berechtigungen steuern die tatsächlichen Berechtigungen des jeweiligen ACL-Eintrags.
Berechtigung | Bedeutung für Dateien | Bedeutung für Ordner |
---|---|---|
r | Dateien lesen | Ordnerinhalte auflisten |
w | Dateien schreiben | Neue Dateien anlegen |
a | Daten an Datei anhängen | Unterordner anlegen |
x | Dateien ausführen | Ordner öffnen |
d | Datei löschen | Ordner löschen |
D | - | Datei oder Unterordner im Ordner löschen |
t | Attribute lesen | |
T | Attribute schreiben | |
n | "Named Attributes" lesen | |
N | "Named Attributes" schreiben | |
c | NFSv4-ACL lesen | |
C | NFSv4-ACL schreiben | |
o | chownDateieigentümer und Gruppe ändern | |
y | synchronous I/OSynchronisierten Datenverkehr anfordern |
Ein paar Beispiele:
Recht | NFS4-Flags |
---|---|
Nur Ordner öffnen (benötigt für den Zugriff auf Unterordner) | xc |
Nur Lesen | rtncy |
Nur Schreiben | waDtTNcCy |
Vollzugriff | rwaDdxtTnNcCoy |
Vollzugriff ohne ACL ändern | rwaDdxtTnNcoy |
Eine Vollständige vollständige ACL für einen Ordner mit zusätzlichen Berechtigungen für einen weiteren Nutzer und Vererbung für Unterordner / Dateien könnte beispielsweise so aussehen:
Codeblock | ||||
---|---|---|---|---|
| ||||
A::OWNER@:rwaDdxtTnNcCoy A:fd:Nutzername@hilbert.hpc.uni-duesseldorf.deNutzername:rwaDxtncy A::GROUP@:rxtncy A::EVERYONE@:rxtncy |
...