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
Dokumentationen zur Verwaltung der AFS-Rechte
Aktuell:
Informationen zu Tools für kollaboratives Arbeiten im Homeoffice
Kontakt
Bei Fragen und für individuellen Support wenden Sie sich bitte an den
RRZK-Helpdesk