EDV:OpenAFS

From KIP Wiki
⧼kip-jumptonavigation⧽⧼kip-jumptosearch⧽

Allgemeines

Hier im KIP gibt es ein OpenAFS als zentrales Dateisystem.


Was ist (Open)AFS?

AFS ist ein sicheres, verteiltes Dateisystem, welches an der Carnegie Mellon Universität entwickelt wurde. Danach wurde es von der Transarc Corporation, die mittlerweile von IBM übernommen wurde, vermarktet.

IBM ermöglichte dann eine parallele Weiterentwicklung als w:de:Open Source (http://www.openafs.org).


Warum (Open)AFS?

Es gibt mehrere Vorteile von AFS (ohne Anspruch auf Vollständigkeit):

  • Die Daten können transparent über mehrere Server verteilt werden.
  • Jeder kann auf das AFS mit einem Client zugreifen.
  • Es gibt w:de:Access Control Listen (ACL), welche eine bessere Rechteverwaltung ermöglichen.
  • w:de:Disk Quotas sind elementare Bestandteile von AFS.

Verwendung

Authentisieren

Um mit AFS arbeiten zu können, muss man sich erst authentisieren (w:de:Authentisierung), da man sonst nur die Reche der Gruppe system:anyuser (also Anonymous) hat.

AFS arbeitet dabei mit Kerberos4-Token (w:de:Kerberos (Informatik)).


Arbeiten mit AFS-Kommandos

Die folgenden Kommondos sind alle bei (Open)AFS dabei und können ohne zusätzliches Kerberos verwendet werden.

Mit dem tokens-Kommando kann überprüft werden, ob ein solches Token existiert und wie lange es gültig ist:

userX@pcY:~$ tokens

Tokens held by the Cache Manager:

User's (AFS ID 1000) tokens for afs@kip.uni-heidelberg.de [Expires Feb 27 18:15]
   --End of list--

Zum Erhalten oder Erneuern eines Tokens, wird klog verwendet:

userX@pcY:~$ klog userX

Die Gültigkeit eines solchen Tokens bezieht sich standardmäßig auf einen Nutzer auf einem Rechner, in allen Shells (w:de:Betriebssystem-Shell, w:de:Unix-Shell). Um diese Gültikeit nur auf eine Shell zu beziehen, muss man diese mit kpagsh kapseln und danach erst das Token holen:

userX@pcY:~$ pagsh
userX@pcY:~$ klog userX

Zum Zerstören des Tokens vor dem Ende seiner Laufzeit gibt es unlog:

userX@pcY:~$ unlog
userX@pcY:~$ tokens

Tokens held by the Cache Manager:

   --End of list--

Arbeiten mit Kerberos-Kommandos

Da wir Heimdal-Kerberos für die Authentisierung von AFS verwenden, können auch die Heimdal-Clients zur Authentisierung verwendet werden. Wenn OpenAFS gestartet ist, wird dann neben dem Kerberos-Ticket auch automatisch ein AFS-Token geholt.

Zur Abfrage der Tickets wird klist verwendet. Mit der Option '-T' wird auch gleich das AFS-Token angezeigt, falls vorhanden:

userX@pcY:~$ klist -T
Credentials cache: FILE:/tmp/krb5cc_1000
        Principal: userX@KIP.UNI-HEIDELBERG.DE

  Issued           Expires          Principal
Feb 27 16:25:00  Feb 28 02:24:59  krbtgt/KIP.UNI-HEIDELBERG.DE@KIP.UNI-HEIDELBERG.DE
Feb 27 16:25:00  Feb 28 02:24:59  afs@KIP.UNI-HEIDELBERG.DE

Feb 27 16:25:00  Feb 28 02:24:59  User's (AFS ID 1000) tokens for kip.uni-heidelberg.de

Um ein Ticket zu erhalten, gibt es kinit. Das Token wird automatisch mit erzeugt:

userX@pcY:~$ kinit userX

Innerhalb der Güligkeit kann das Kerberos-Ticket auch verlängert werden, ohne das Passwort nochmal neu eingeben zu müssen:

userX@pcY:~$ kinit -R

Um die eigene Shell zu kapseln, gibt es dann kpagsh:

userX@pcY:~$ kpagsh

Zum Zerstören aller Tickets (und des Tokens) dient kdestroy:

userX@pcY:~$ kdestroy
userX@pcY:~$ klist -T
klist: No ticket file: /tmp/krb5cc_1000

Access Control Lists (ACLs)

Achtung: Von den Unix/Linux-Protection-Bits für User, Group und Others werden nur die von User verwendet. Dies erfolgt, nachdem die ACL ausgewertet wurde.


Unterschied der AFS-ACLs zu Unix-Dateirechten

Im typischen Unix-/Linux-Dateisystem existieren nur die drei Klassen Eigentümer, Gruppe, Alle. Eine Datei hat dann genau einen Eigentümer und genau eine Gruppe. Nun können jeder dieser Klassen für jede Datei bestimmte Rechte gegeben werden. Zum Beispiel (Ausgabe von ls -l):

-rw-r--r-- 1 floh users 396811 2006-11-10 17:12 Neuenheimer_Feld_Plan.jpg

Es ist eine feinere Rechteaufteilung implementiert (siehe Punkt EDV:OpenAFS#Rechte im AFS) und vor allem können beliebig viele Gruppen und Personen in einer ACL vorkommen. Zum Beispiel (Ausgabe von fs listacl):

Access list for /afs/kip/user/home1/sesselm is
Normal rights:
  s3 rl
  system:administrators rlidwka
  system:authuser l
  sesselm rlidwka
Leider können solche ACLs nur auf Verzeichnisse angewendet werden.

Besondere Gruppen im AFS

Gruppe Wer gehört zu dieser Gruppe
system:anyusers Jeder (Anonym)
system:authusers Alle Nutzer, die sich (erfolgreich gegenüber dem AFS) authentisiert haben.
system:administrators Gruppe der Administratoren

Rechte im AFS

Es existieren sieben Zugriffsrechte im AFS:

Recht Langform Bedeutung
l Lookup Auflisten des Inhaltes des Verzeichnisses und Anzeige der ACL
i Insert Einfügen/Anlegen von Dateien/Verzeichnissen in dem Verzeichnis
d Delete Löschen von Dateien/Verzeichnissen in dem Verzeichnis
a Administer Ändern der ACL des Verzeichnisses
r Read Lesen von Dateien
w Write Schreiben/Ändern von Dateien (Achtung.svg nicht neue Dateien anlegen)
k Lock Sperren von Dateien mit flock

Damit man diese Rechte nicht immer alle einzeln angeben muss, gibt es folgende kurzen Aliase:

Alias Ausführlich Bedeutung
write rlidwk Schreiben (alle außer Administer)
read rl Lesen und Lookup
all rlidwka Alle Rechte (auch a)
none Kein Recht, dient zum Entfernen von Rechten

Rechte lesen und setzen

Mit fs listacl [Eintrag]+ erhält man die gültige ACL des Eintrages (Datei/Verzeichnis):

fs listacl *

Mit fs setacl kann eine ACL geändert werden (oder gleich mehrere):

fs setacl -dir ./mydirectory -acl system:anyuser read
fs setacl -dir ./mydirectory ./mydir2 -acl system:anyuser none userX read groupY l

Um sich mit den Befehlen vertraut zu machen, kann fs help verwendet werden:

fs help
fs help listacl
fs help setacl
Achtung.svg Es gibt auch negative Rechte (verbieten).

Diese haben Vorrang vor normalen Rechten und sollten nur mit äußerster Vorsicht verwendet werden (daher auch hier nur am Rande erwähnt)!

fs setacl -dir ./mydir -acl userY rl -negative

Nützliche Kommandos

Die Hilfeseiten der Kommandos sind meist schon sehr selbsterklärend und sollten deshalb auch verwendet werden:

fs help
fs help listquota
fs help listacl
pts help
pts help listentries

Auflisten der ACLs:

fs listacl /afs/kip/temp

Ändern der ACL:

fs setacl /afs/kip/temp system:administrator all

Auflisten der Quota:

fs quota /afs/kip/temp
fs listquota /afs/kip/temp

Herausfinden des Volumes zum Mountpoint:

fs lsmount /afs/kip/temp

Löschen des Eintrags im Cache des AFS-Clients:

fs flush /afs/kip/temp

Auflisten aller Nutzer im AFS:

pts listentries

Auflisten aller Gruppen im AFS:

pts listentries -groups

Auflisten der Nutzer in einer AFS-Gruppe:

pts members users

Client-Installation (Zugang zum AFS)

General

Achtung.svg Wichtig für AFS sind synchrone Zeiten der Systemuhren, deshalb sollte auf jedem Client die Uhrzeit auch stimmen (siehe NTP).

Allgemeine OpenAFS Dokumentation

Die Dokumentation von Openafs ist hier zu finden:

file:///afs/kip/afsdoc/html/QuickStartUnix/auqbg007.htm#HDRWQ133
http://www.openafs.org/pages/doc/QuickStartUnix/auqbg007.htm#HDRWQ133

CellServDB und ThisCell

Unsere Zelle (Cell) im KIP ist natürlich kip.uni-heidelberg.de, daher sieht die ThisCell-Datei so aus:

kip.uni-heidelberg.de 

In der CellServDB sollte für die KIP-Zelle folgender Eintrag stehen:

>kip.uni-heidelberg.de
129.206.176.40          # ldap.kip.uni-heidelberg.de
129.206.176.149         # ldap2.kip.uni-heidelberg.de

Diese Dateien ist auch unter /afs/kip/common/etc/ zu finden.

Linux-Client

EDV:OpenAFS/Install_i386_linux24

EDV:OpenAFS/Install_i386_linux26

Solaris

EDV:OpenAFS/Install_sun4x_59

EDV:OpenAFS/Install_sun4x_510

HP-UX

EDV:OpenAFS/Install_hp_ux110

Windows

EDV:OpenAFS/Install_winnt

EDV:OpenAFS/Install_winxp

FAQ

Wo kann ich auf AFS zugreifen ohne selbst einen Client zu installieren?

Auf kip1.kip.uni-heidelberg.de ist ein OpenAFS-Client und auch die Heimdal-Clients installiert. Demnach kann dort auch auf das AFS zugegriffen werden.

kinit lehnt mein Passwort ab!

Es kann sein das noch kein Kerberos-Eintrag erzeugt wurde. Dies ist der Fall, wenn kinit sagt unknown statt Password incorrect

userX@kip1:~$ kinit userX
userX3@KIP.UNI-HEIDELBERG.DE's Password:
kinit: krb5_get_init_creds: Client (userX@KIP.UNI-HEIDELBERG.DE) unknown

Um dann seinen Eintrag zu erzeugen, muss man sich einmal auf Portal anmelden:

https://portal.kip.uni-heidelberg.de/account/
Nun wird versucht, das Kerberos-Passwort zu setzten.

Falls eine Fehlermeldung erscheint, müssen Sie sich and die EDV-Abteilung wenden.

Wie komme ich an ein Backup meines Homeverzeichnisses?

Jeden Tag um 0:00Uhr wird der Stand aller volumes eingefroren und in ~/.backup verfügbar gemacht. Somit kann jeder auf diesen Stand seines Homeverzeichnisses zugreifen.

ls -l ~/
ls -l ~/.backup

Wo finde ich Was (Struktur im AFS)

Die Hauptverzeichnisse im AFS beherbergen bestimmte Sachen:

Pfad Beschreibung
/afs/kip.uni-heidelberg.de/ Hauptpfad (lesend wenn möglich)
/afs/.kip.uni-heidelberg.de/ Hauptpfad immer auf Schreibenden Volumes
/afs/kip/user Verzeichnis zu den Homeverzeichnissen der Nutzer im AFS
/afs/kip/afsdoc Dokumentation zu AFS
/afs/kip/openafs Lokale Binaries/Quellen von OpenAFS
/afs/kip/common Allgemeine Konfigurationsdateien (z.B. die CellServDB und die ThisCell)
/afs/kip/@sys Binaries für die jeweilige Systemarchitektur (z.B. i386_linux26, sun4x_510)
/afs/kip/software Verschiedene Software
/afs/kip/software/Linux Software für Linux und verschiedene (CD/DVD-Images) von Linux (z.B. SuSe, Debian, Knoppix, Ubuntu)
/afs/kip/software/Windows Software für Windows
/afs/kip/data
/afs/kip/pictures
/afs/kip/temp Allgemeines Temporäres Verzeichnis im AFS (viel Platz, aber kein Backup!)
/afs/kip/computing Daten der EDV-Abteilung
/afs/kip/s7technik
/afs/kip/cad