skip to content

Grundlagen

Für Dateien und Verzeichnisse im AFS werden die unter Unix bekannten Mode-Bits größtenteils ignoriert. Stattdessen gibt es so genannte ACLs (Access Control List), allerdings nur für Verzeichnisse. Die darin vereinbarten Rechte gelten dann für alle Dateien des Verzeichnisses einschließlich aller später erstellten Unterverzeichnisse, sofern für letztere die Rechte nicht modifiziert werden. In einer ACL können folgende Rechte vereinbart werden:

r read eine Datei im Verzeichnis kann gelesen werden beziehungsweise kann ausgeführt werden, wenn das Unix-x-Bit der Datei gesetzt ist (eine eigene "execute permission" gibt es also unter AFS nicht)
w write eine Datei im Verzeichnis kann geändert werden
l lookup das Verzeichnis kann gelesen werden
i insert neue Dateien können im Verzeichnis erzeugt werden
d delete Dateien können gelöscht werden
k lock man kann ein Lock auf eine Datei setzen
a administer die ACL des Verzeichnisses kann geändert werden

Eine ACL für ein Verzeichnis besteht im Wesentlichen aus einer Liste von Benutzernamen mit den jeweils zugeordneten Rechten als Kombination der obigen 7 Buchstaben. Zur Vereinfachung können auch folgende Rechte vergeben werden:

read für rl
write für  rlidwk
all für rlidwka
none entfernt alle Rechte

Außerdem können von jedem Benutzer Gruppen von Benutzern definiert werden. Eine benutzerdefinierte Gruppe ist ein Paar

Benutzername: Gruppenname

wobei Benutzername der Name des Benutzers ist, der die Gruppe erzeugt. Von AFS vorgegebene Gruppen sind:

  • system:anyuser
    jeder Benutzer, auch ohne gültige AFS-Berechtigung

  • system:authuser
    jeder Benutzer mit gültiger AFS-Berechtigung

  • system:administrators

AFS-Kommandos

Zum Anzeigen und zur Verwaltung dieser Rechte muss auf dem Rechner ein AFS-Client installiert sein. Dies ist für die zentralen Server des RRZK der Fall. Für eigene PCs unter Windows oder Linux muss die Installation selbst vorgenommen werden. Das Anzeigen und die Verwaltung der Rechte erfolgt unter anderm über Kommandos. Bei PCs gibt es unter Windows hierzu eine grafische Benutzeroberfläche.

Die AFS-Kommandos gliedern sich im Wesentlichen in die beiden AFS-Kommandogruppen pts (Bearbeitung von Gruppen) und fs (Bearbeitung von Rechten). Die Kommandos fs und pts werden aus dem Verzeichnis /usr/afsws/bin/ aufgerufen, das automatisch Bestandteil des Benutzerpfades sein sollte. Die einzelnen Subkommandos werden aufgelistet mit

  • pts help

beziehungsweise

  • fs help

Die Syntax zu den einzelnen Kommandos listet

  • pts help Subkommando

beziehungsweise

  • fs help Subkommando

Die Bearbeitung einer Gruppe erfolgt mit dem Kommando pts:

  • pts creategroup Benutzername:Gruppenname

    zur Erzeugung der Gruppe

  • pts membership Benutzername:Gruppenname

    zur Anzeige der Mitglieder einer Gruppe

  • pts adduser -user Benutzerkennzeichen -group Benutzername:Gruppenname

    zum Hinzufügen eines oder mehrerer Benutzer zu einer Gruppe

  • pts removeuser -user Benutzerkennzeichen -group Benutzername:Gruppenname

    zum Entfernen eines oder mehrerer Benutzer von einer Gruppe

Die Rechte (ACL) für ein Verzeichnis können unter Unix und Linux angezeigt werden mit

  • fs listacl Verzeichnis

und ergibt zum Beispiel für /home/az106

Access list for /home/az106 is
Normal rights:
system:administrators rlidwka
system:anyuser rl
az106 rlidwka

Die Vergabe von Rechten für ein Verzeichnis (ändern einer ACL):

  • fs setacl -dir Verzeichnispfad -acl Benutzerkennzeichen Rechte

beziehungsweise

  • fs setacl -dir Verzeichnispfad -acl Benutzername:Gruppenname Rechte

Das Entfernen von Rechten geschieht über die Neudefinition der Rechte für einen Benutzer oder eine Gruppe, das heißt im Extremfall die Vergabe des Rechts "none".

Für ein Verzeichnis können maximal für 20 Benutzer oder Gruppen besondere Rechte definiert werden.

Bei der Einrichtung von Home Directories unter AFS werden vom RRZK Unterverzeichnisse mit folgenden Zugriffsrechten eingerichtet: public mit Lese- und Lookup-Rechten für alle sowie Mail, das wie die root des Home-Directories für alle nur Lookup-Rechte hat, für den Benutzer natürlich alle Rechte.

Beispiel 1: Definieren einer Gruppe und Setzen von Rechten

Ein Benutzer zz990 hat sein Home Directory im AFS und darin die Verzeichnisse /home/zz990/Briefe und /home/zz990/Programme. Er will eine Gruppe Freunde einrichten, der die Benutzer zz991, zz992, zz993, zz994, zz995 angehören sollen. Seine Programme sollen von allen Mitgliedern dieser Gruppe gelesen werden können, außerdem noch vom Benutzer zz999. Seine Briefe sollen von den Mitgliedern der Gruppe gelesen werden, jedoch nicht von zz992, der nur das Vorhandensein von Dateien feststellen können soll. Folgende Kommandos sind erforderlich:

  • pts creategroup zz990:Freunde
  • pts adduser -user zz991 zz992 zz993 zz994 zz995 -group zz990:Freunde
  • fs setacl -dir /home/zz990/Programme -acl zz990:Freunde read zz999 read
  • fs setacl -dir /home/zz990/Briefe -acl zz990:Freunde read
  • fs setacl -dir /home/zz990/Briefe -acl zz992 r -negative

Setzen/Entfernen von Schreibrechten

Hinweis: 

  • Die folgenden Kommandos sind (vom RRZK bereitgestellte) Skripte, die auf den oben angegebenen AFS-Kommandos basieren und das Setzen/Entfernen von Schreibrechten erleichtern, da nicht rekursiv alle Ordner bearbeitet werden müssen. Diese Skripte stehen unter Windows nicht zur Verfügung. 

Derjenige, der die Schreibrechte vergibt beziehungsweise entfernt, also die folgenden Kommandos ausführen will, muss das rlidwka Recht besitzen. Jeder hat im so genannten Webbereich /afs/.rrz.uni-koeln.de/common/info/www/docs/ Leserechte (damit die Webseiten von jedem gelesen werden können). Diese werden durch das Löschen aller Rechte (siehe unten) nicht beeinträchtigt.

Da die Vergabe von Rechten mit dem Kommando fs setacl relativ schwerfällig ist - insbesondere können mit dem Kommando fs setacl nur die Rechte in dem angegebenen Verzeichnis gesetzt werden, nicht automatisch in den darin enthaltenen Unterverzeichnissen - hat das RRZK 4 Macrobefehle geschrieben, die alle voraussetzen, dass das aktuelle Verzeichnis dasjenige ist, für das Rechte geändert werden sollen:

  • fswho

zeigt die Berechtigungen im aktuellen Verzeichnis einschließlich der Benutzernamen

  • fsw Benutzerkennzeichen

erteilt dem Benutzerkennzeichen das Schreibrecht (rlidwk) für das aktuelle Verzeichnis einschließlich aller darin enthaltenen Unterverzeichnisse

  • fsr Benutzerkennzeichen

erteilt dem Benutzerkennzeichen das Leserecht (rl) für das aktuelle Verzeichnis einschließlich aller darin enthaltenen Unterverzeichnisse (dieses Kommando wird in der Regel nicht benötigt.)

  • fsn Benutzerkennzeichen

nimmt dem Benutzerkennzeichen alle bisherigen Rechte (none) für das aktuelle Verzeichnis einschließlich aller darin enthaltenen Unterverzeichnisse.

Die Kommandos sind aufrufbar aus dem Verzeichnis /afs/.rrz.uni-koeln.de/common/info/www/tools/bin/
 

Beispiel 2: Setzen von Rechten für Projekt-Verzeichnisse

Als Beispiel soll ein Projektbereich dienen, der in dem Verzeichnis /afs/rrz/vol/www/projekt/xyz/ angelegt ist.

Anzeigen der Rechte:

  • fs listacl /afs/rrz/vol/www/projekt/xyz/

oder etwas komfortabler (mit zusätzlicher Anzeige der Benutzernamen)

  • cd /afs/rrz/vol/www/projekt/xyz/
    /afs/.rrz.uni-koeln.de/common/info/www/tools/bin/fswho

Erteilen von Schreibrechten:

Im Folgenden wird dem Benutzer az999 das Schreibrecht erteilt:

  • fs setacl -dir /afs/rrz/vol/www/projekt/xyz/ -acl az999 rlidwk

Soll dieses Recht automatisch für alle darin enthaltenen Unterverzeichnisse gegeben werden, so empfiehlt sich die Verwendung von fsw:

  • cd /afs/rrz/vol/www/projekt/xyz/
    /afs/.rrz.uni-koeln.de/common/info/www/tools/bin/fsw az999

Löschen von Schreibrechten:

Im Folgenden wird dem Benutzer az999 das Schreibrecht entzogen:

  • fs setacl -dir /afs/rrz/vol/www/projekt/xyz/ -acl az999 none

Soll dieses Recht automatisch für alle darin enthaltenen Unterverzeichnisse gegeben werden, so empfiehlt sich die Verwendung von fsn:

  • cd /afs/rrz/vol/www/projekt/xyz/
    /afs/.rrz.uni-koeln.de/common/info/www/tools/bin/fsn az999

Contact
If you have any questions or problems, please contact the RRZK-Helpdesk