EDV:OpenAFS: Difference between revisions
(→Allgemeines: Unterschied AFS/NFS und AFS/Unix-FS) |
|||
(61 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
[[Image:openafs-logo.jpg|framed|right|OpenAFS-Logo]] |
|||
== Allgemeines == |
== Allgemeines == |
||
Hier im [[KIP]] |
Hier im [[KIP]] wird [http://www.openafs.org OpenAFS] als zentrales Netzwerk-Dateisystem verwendet. |
||
AFS (Andrew File System) ist ein Dateisystem, das die plattformübergreifende gleichzeitige Nutzung von Dateien zwischen mehreren Rechnern ermöglicht. |
|||
* [[EDV_Privat:OpenAFS|EDV-interne Seite]] (AFS-Server-Administration) |
|||
Es beinhaltet Funktionen zur Zugriffskontrolle (ACLs), Authentifizierung (Kerberos), verschlüsselte Datenübertragung (fcrypt) und einiges [[w:de:Andrew File System | mehr...]] |
|||
* Wikipedia Artikel: [[w:de:Andrew File System]] |
|||
* Homepage von [[EDV:OpenAFS|OpenAFS]]: http://www.openafs.org |
|||
* Das Rechenzentrum hat auch ein [[EDV:AFS|AFS]]: http://www.urz.uni-heidelberg.de/Software/AFS/ |
|||
* Hier ist eine schöne FAQ: http://www.angelfire.com/hi/plutonic/afs-faq.html |
|||
Ursprünglich wurde es an der Carnegie Mellon Universität entwickelt, und danach von der Transarc Corporation, die 1994 von IBM übernommen wurde, vermarktet.<br /> |
|||
Seit 2000 existiert eine parallele [[w:de:Open Source | Open Source]] Weiterentwicklung. |
|||
== Client Installation == |
|||
Um sich mit dem AFS-Dateiserver zu verbinden, benötigt man (wer hätte das gedacht) eine entsprechende Client-Software. Diese ist für |
|||
AFS ist ein sicheres, verteiltes Dateisystem, welches an der Carnegie Mellon Universität entwickelt wurde. |
|||
fast alle Betriebssysteme kostenlos verfügbar. |
|||
Danach wurde es von der Transarc Corporation, die mittlerweile von IBM übernommen wurde, vermarktet. |
|||
* ''' [[EDV:OpenAFS/Windows | Installation Windows ]]''' |
|||
IBM ermöglichte dann eine parallele Weiterentwicklung als [[w:de:Open Source]] (http://www.openafs.org). |
|||
* ''' [[EDV:NewSystem/Debian_6#OpenAFS-Client | Installation Linux]] ''' |
|||
* ''' [[EDV:OpenAFS/Install_mac_osx | Installation Mac OS X]] ''' |
|||
=== Vorteile von AFS === |
|||
Quelle für die meisten Punkte (demnach auch genauer): http://www.angelfire.com/hi/plutonic/afs-faq.html |
|||
Weitere Informationen zum Thema: |
|||
* Es erfolgt ein '''Caching der Daten''' auf dem Client. |
|||
* [[w:de:FAQ | FAQ]] für das AFS im KIP: [[EDV:OpenAFS/FAQ | OpenAFS/FAQ ]] |
|||
* Anders als bei NFS sind die Daten '''lokaltionsunabhänig''' (und nicht fest). |
|||
* Das Orginal [http://docs.openafs.org/UserGuide/index.html OpenAFS User Guide] |
|||
* AFS ist sehr '''Skalierbar''' und daher für große Umgebungen geeignet. |
|||
* Das Rechenzentrum hat auch ein [[EDV:OpenAFS|AFS]]: http://www.urz.uni-heidelberg.de/datenhaltung/afs/ |
|||
* AFS unterstützt einige '''Sicherheits-Features''' wie Kerberos Authentisierung und feinere Rechtevergabe (ACLs). |
|||
* Die Sicht auf das AFS ist von jedem Client aus gleich ('''Single System Image (SSI)''') |
|||
* Die Daten können '''transparent über mehrerer Server verteilt''' werden. |
|||
* Demnach ist auch der Ausfall eines Server leichter zu verkraften, bzw. u.U. sogar 'egal'. |
|||
* Der Zugriff ist mit einem Client von überall aus möglich. |
|||
* [[w:de:Disk Quota]]s sind elementare Bestandteile von [[EDV:AFS|AFS]]. |
|||
== Verwendung == |
|||
Um mit dem AFS-Server arbeiten zu können, muss man sich zuerst [[EDV:OpenAFS/Verwendung/Authentisieren|authentifizieren]] (siehe auch [[w:de:Authentifizierung | Authentifizierung ]]), da man sonst nur die Reche der Gruppe ''system:anyuser'' (also Anonymous / Gast) erhält. Mit diesen ist nur der Zugriff auf allgemeine (öffentliche) Dateien möglich. OpenAFS arbeitet dabei mittlerweile mit Kerberos Verion 5 ([http://www.kerberos.org/software/tutorial.html Kerberos]). |
|||
=== Vergleich von AFS und NFS === |
|||
Man kann dazu auch die [[EDV:OpenAFS/FAQ| FAQ]] durchlesen, insbesondere: [[EDV:OpenAFS/FAQ#Was ist ein Ticket und/oder Token | "Was ist ein Ticket und/oder Token"]]. |
|||
Wegen der [[EDV:OpenAFS/Verwendung/ACLs|Rechte im AFS (Access Control Lists)]] werden 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. |
|||
Weitere Informationen zur [[EDV:OpenAFS/Verwendung|Benutzung von AFS]]. |
|||
{{Achtung|{{IconAchtung}} Wichtig für AFS sind '''synchrone Zeiten''' der Systemuhren! Deshalb sollte auf jedem Client die Uhrzeit auch stimmen (siehe [[EDV:NTP|NTP]]), sonst kann es passieren, dass die Authentifikation fehlschlägt.}} |
|||
{|{{Prettytable}} |
|||
! || AFS || NFS |
|||
|- |
|||
! File Access |
|||
| Common name space from all workstations |
|||
| Different file names from differnt workstations |
|||
|- |
|||
! File Location |
|||
| Automatic tracking by |
|||
| Mountpoints to files set by |
|||
|- |
|||
! Tracking |
|||
| file system processes and databases |
|||
| administrators and users |
|||
|- |
|||
! Performance |
|||
| Client caching to reduce network load; callbacks to maintain cache consistency |
|||
| No local disk caching; limited cache consistency |
|||
|- |
|||
! Andrew Benchmark |
|||
| Average time of 210 (5 phases, 8 clients) seconds/client |
|||
| Average time of 280 seconds/client |
|||
|- |
|||
! Scaling capabilities |
|||
| Maintains performance in small and very large installations |
|||
Excellent performance on wide-area configuration |
|||
| Best in small to mid-size installations |
|||
Best in local-area configurations |
|||
|- |
|||
! Security |
|||
| Kerberos mutual authentication |
|||
Access control lists on directories for user and group access |
|||
| Security based on unecrypted user ID's |
|||
No access control lists |
|||
|- |
|||
! Availability |
|||
| Replicates read-mostly data and AFS system information |
|||
| No replication |
|||
|- |
|||
! Backup Operation |
|||
| No system downtime with specially developed AFS Backup System |
|||
| Standard UNIX backup system |
|||
|- |
|||
! Reconfiguration |
|||
| By volumes (groups of files) |
|||
No user impact; files remain accessible during moves, and file names do not change |
|||
| Per-file movement |
|||
Users lose access to files and filenames change (mountpoints need to be reset) |
|||
|- |
|||
! System Management |
|||
| Most tasks performed from any workstation |
|||
| Frequently involves telnet to other workstations |
|||
|- |
|||
! Autonomous |
|||
| Autonomous administrative |
|||
| File servers and clients |
|||
|- |
|||
! Architecture |
|||
| units called cells, in addition to file servers and clients |
|||
No trust required between cells |
|||
| |
|||
No security distinctions between sites |
|||
|- |
|||
|} |
|||
== Wichtige Konfigurationsdateien == |
|||
Other points: |
|||
* Some vendors offer more secure versions of NFS but implementations vary. Many NFS ports have no extra security features (such as Kerberos). |
|||
* The AFS Cache Manager can be configured to work with a RAM (memory) based cache. This offers signifigant performance benefits over a disk based cache. |
|||
*: NFS has no such feature. Imagine how much faster it is to access files cached into RAM! |
|||
* The Andrew benchmark demonstrates that AFS has better performance than over NFS as the number of clients increases. A graph of this (taken from Andrew benchmark report) is available in: <nowiki>http://www.angelfire.com/hi/plutonic/images/andrew1.jpp</nowiki> |
|||
Falls es mal zu Problemen mit dem OpenAFS-Client kommt, ist es gut zu wissen, wo welche Einstellung steht ;) |
|||
Quelle: http://www.angelfire.com/hi/plutonic/afs-faq.html |
|||
Nachfolgend die wichtigsten KIP-AFS spezifischen Konfigurationsdateien. |
|||
Quelle: ftp://ftp.transarc.com/pub/afsps/doc/afs-nfs.comparison |
|||
=== |
=== CellServDB === |
||
In der ''CellServDB'' sollte für die KIP-Zelle folgender Eintrag stehen: |
|||
Vom Nutzerstandpunkt gibt es wenige Unterschiede zu einem 'normalen' Unix-Dateisystem. |
|||
* Authentication: |
|||
Bevor ein Nutzer auf AFS-Dateien zugreifen kann, muss er sich mit einem Kerberos-Login authentisieren (kinit, aklog). |
|||
(Dies sollte beim Login schon geschehen.) |
|||
Ohne ein Token, ein Nutzer ist unauthentisiert und hat im AFS nur die Rechte von ''system:anyuser''. |
|||
* File permissions: |
|||
Die Unix-mode-bits für 'group' und 'other' werden ignoriert und die von 'owner' werden anders ausgewertet. |
|||
Die Nutzer sollten ihre Dateien mit den ACLs (des Verzeichnisses) schützen. |
|||
* Protection groups: |
|||
Nutzer können ihre eigenen Gruppen in AFS erzeugen und verwalten. |
|||
* Hard links: |
|||
Im AFS sind 'hard links' nur bei Verzeichnissen möglich. |
|||
Symbolische Links arbeiten wie gewohnt. |
|||
* Verändern der Zugriffsrechte beim verschieben: |
|||
Ein verschieben einer Datei in ein anderes Verzeichnis, ändert die Zugriffsrechte, |
|||
da eine Datei die ACLs des Verzeichnisses annimmt. |
|||
* chown and chgrp: |
|||
Nur Mitglieder der AFS-Gruppe 'system:administrators' kann diese Kommandos auf Dateien im /afs verwenden. |
|||
* Save on close: (für Programmierer) |
|||
Der AFS Cache Manager sendet die Dateiänderungen nicht zu dem Server, bis ein 'close()' oder 'fsync()' system call aufgerufen wird. |
|||
Ein 'write()' system call ändert nur die lokale Kopie des Clients. |
|||
<pre> |
<pre> |
||
>kip.uni-heidelberg.de |
|||
Note the difference in semantic of writing a file: |
|||
129.206.176.40 # ldap.kip.uni-heidelberg.de |
|||
129.206.176.149 # ldap2.kip.uni-heidelberg.de |
|||
local unix file: writes update the file "immediately" |
|||
AFS file: local cached copy updated "immediately" but |
|||
the server copy is only updated when the file |
|||
is closed or fsync'ed. |
|||
It is important to understand that most applications (eg: vi, emacs, |
|||
frame, interleaf, wingz, dogz, etc) issue the close() system call when |
|||
the user chooses/issues the "save" command in the application. |
|||
Users are not required to exit the application to "save" their |
|||
changes back to the server. |
|||
</pre> |
|||
* byte-range file locking: (für Programmierer) |
|||
<pre> |
|||
AFS does not support byte-range locking within a file, |
|||
although lockf() and fcntl() calls will return 0 (success). |
|||
The first time a byte-range lock is attempted, AFS will display: |
|||
"afs: byte-range lock/unlock ignored; make sure no one else |
|||
else is running this program." |
|||
</pre> |
</pre> |
||
{{Achtung|Achtung der 2. Teil ist nicht nur ein Kommentar, dort '''muss''' der vollständige Name des Servers stehen (für aklog)!}} |
|||
* whole file locking: (für Programmierer) |
|||
<pre> |
|||
AFS does support advisory locking an entire file with flock(). |
|||
Processes on the same client workstation that attempt to lock |
|||
a file obey the proper locking semantics. |
|||
Processes on different AFS clients requesting a lock on the same |
|||
file would get EWOULDBLOCK returned. |
|||
</pre> |
|||
Diese Datei befindet sich auch |
|||
* character and block special files: (für SysAdmins) |
|||
AFS unterstützt keine ''character'' oder ''block'' spezial Dateien. |
|||
Das ''mknod''-Kommando kann keine solche speziellen Dateien im /afs erzeugen. |
|||
* im AFS unter: '''/afs/kip/common/etc/CellServDB''' |
|||
* AFS version of fsck: (für Sysadmins) |
|||
<pre> |
|||
On an AFS server, the partitions containing served files are NOT |
|||
unix filesystems and standard fsck must not be used - use the AFS |
|||
version instead. |
|||
</pre> |
|||
* im Web unter: '''http://kip1.kip.uni-heidelberg.de/afs/common/etc/CellServDB''' |
|||
Quelle: http://www.angelfire.com/hi/plutonic/afs-faq.html |
|||
und kann für die Einstellungen genutzt, bzw. einfach ins Konfigurationsverzeichnis kopiert werden. |
|||
== Verwendung == |
|||
* unter Linux meist in: '''/etc/openafs/CellServDB ''' |
|||
* unter Windows vermutlich in: '''C:\Programme\OpenAFS\Client\CellServDB''' |
|||
=== Authentisieren === |
|||
=== ThisCell === |
|||
Um mit [[EDV:AFS|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. |
|||
Unsere Zelle (Cell) im [[KIP]] ist natürlich '''kip.uni-heidelberg.de''',somit enthält die '''ThisCell'''-Datei entsprechend nur den Eintrag: |
|||
[[EDV:AFS|AFS]] arbeitet dabei mit Kerberos4-Token ([[w:de:Kerberos (Informatik)]]). |
|||
kip.uni-heidelberg.de |
|||
=== CellAlias (nur für -dynroot) === |
|||
Wenn '''/afs dynamisch''' generiert wird, sollte die '''CellAlias'''-Datei folgendes beinhalten: |
|||
==== Arbeiten mit AFS-Kommandos ==== |
|||
kip.uni-heidelberg.de kip |
|||
alihlt.cern.ch alihlt |
|||
urz.uni-heidelberg.de urz |
|||
Diese Datei muss gegebenenfalls im Konfigurationsverzeichnis des Clients erzeugt werden |
|||
Die folgenden Kommondos sind alle bei (Open)AFS dabei und können |
|||
ohne zusätzliches Kerberos verwendet werden. |
|||
* unter Unix / Linux ist das meist: '''/etc/openafs/CellAlias''' oder '''/usr/vice/etc''' |
|||
Mit dem '''tokens'''-Kommando kann überprüft werden, ob ein solches Token existiert und wie lange es gültig ist: |
|||
<pre> |
|||
userX@pcY:~$ tokens |
|||
* unter Windows: '''C:\Programme\OpenAFS\Client\CellServDB''' |
|||
Tokens held by the Cache Manager: |
|||
Dieses Beispiel auch im AFS und kann von dort aus kopiert werden: |
|||
User's (AFS ID 1000) tokens for afs@kip.uni-heidelberg.de [Expires Feb 27 18:15] |
|||
cp /afs/kip.uni-heidelberg.de/common/etc/CellAlias /etc/openafs |
|||
--End of list-- |
|||
</pre> |
|||
Damit diese Datei neu eingelesen wird, muss der AFS-Client neugestartet werden. |
|||
Zum Erhalten oder Erneuern eines Tokens, wird '''klog''' verwendet: |
|||
Wenn das nicht geht, können diese Aliase auch temporär manuell erzeugt werden: |
|||
userX@pcY:~$ klog userX |
|||
fs newalias kip kip.uni-heidelberg.de |
|||
fs newalias alihlt alihlt.cern.ch |
|||
fs newalias urz urz.uni-heidelberg.de |
|||
fs listalias |
|||
=== krb5.conf === |
|||
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 |
|||
Die Datei krb5.conf (oder auch krb5.ini) beinhaltet Informationen über den Kerberos-Realm, in dem sich der Client befindet. |
|||
Zum Zerstören des Tokens vor dem Ende seiner Laufzeit gibt es '''unlog''': |
|||
Kerberos wird über diese Text-Datei konfiguriert. |
|||
<pre>userX@pcY:~$ unlog |
|||
userX@pcY:~$ tokens |
|||
* im AFS unter: '''/afs/kip/common/etc/krb5.conf''' |
|||
Tokens held by the Cache Manager: |
|||
* im Web unter: '''http://kip1.kip.uni-heidelberg.de/afs/common/etc/krb5.conf''' |
|||
Auf dem lokalen Client-System befindet sie sich: |
|||
--End of list-- |
|||
</pre> |
|||
* unter Linux in: '''/etc/krb5.conf ''' |
|||
==== Arbeiten mit Kerberos-Kommandos ==== |
|||
* unter Windows in: '''C:\ProgramData\Kerberos\krb5.conf''' |
|||
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. |
|||
* oder auch in: '''C:\Windows\krb5.ini''' |
|||
Zur Abfrage der Tickets wird '''klist''' verwendet. |
|||
Mit der Option ''''-T'''' wird auch gleich das AFS-Token angezeigt, falls vorhanden: |
|||
<pre>userX@pcY:~$ klist -T |
|||
Credentials cache: FILE:/tmp/krb5cc_1000 |
|||
Principal: userX@KIP.UNI-HEIDELBERG.DE |
|||
und ihr Inhalt sieht in etwa so aus: |
|||
Issued Expires Principal |
|||
<pre> |
|||
Feb 27 16:25:00 Feb 28 02:24:59 krbtgt/KIP.UNI-HEIDELBERG.DE@KIP.UNI-HEIDELBERG.DE |
|||
### KIP krb5.conf - date: 21.11.2012 ### |
|||
Feb 27 16:25:00 Feb 28 02:24:59 afs@KIP.UNI-HEIDELBERG.DE |
|||
[libdefaults] |
|||
allow_weak_crypto = true |
|||
default_realm = KIP.UNI-HEIDELBERG.DE |
|||
ticket_lifetime = 2d |
|||
renew_lifetime = 8d |
|||
# The following krb5.conf variables are only for MIT Kerberos. |
|||
Feb 27 16:25:00 Feb 28 02:24:59 User's (AFS ID 1000) tokens for kip.uni-heidelberg.de |
|||
kdc_timesync = 1 |
|||
</pre> |
|||
ccache_type = 4 |
|||
forwardable = true |
|||
proxiable = true |
|||
renewable = true |
|||
# The following libdefaults parameters are only for Heimdal Kerberos. |
|||
Um ein Ticket zu erhalten, gibt es '''kinit'''. |
|||
v4_instance_resolve = false |
|||
Das Token wird automatisch mit erzeugt: |
|||
userX@pcY:~$ kinit userX |
|||
[realms] |
|||
KIP.UNI-HEIDELBERG.DE = { |
|||
Innerhalb der Güligkeit kann das Kerberos-Ticket auch verlängert werden, |
|||
kdc = ldap2.kip.uni-heidelberg.de |
|||
ohne das Passwort nochmal neu eingeben zu müssen: |
|||
kdc = afsback.kip.uni-heidelberg.de |
|||
userX@pcY:~$ kinit -R |
|||
kdc = ldap.kip.uni-heidelberg.de |
|||
admin_server = ldap.kip.uni-heidelberg.de |
|||
Um die eigene Shell zu kapseln, gibt es dann '''kpagsh''': |
|||
} |
|||
userX@pcY:~$ kpagsh |
|||
[domain_realm] |
|||
Zum Zerstören aller Tickets (und des Tokens) dient '''kdestroy''': |
|||
.kip.uni-heidelberg.de = KIP.UNI-HEIDELBERG.DE |
|||
<pre>userX@pcY:~$ kdestroy |
|||
kip.uni-heidelberg.de = KIP.UNI-HEIDELBERG.DE |
|||
userX@pcY:~$ klist -T |
|||
klist: No ticket file: /tmp/krb5cc_1000 |
|||
[login] |
|||
krb4_convert = false |
|||
krb4_get_tickets = false |
|||
</pre> |
</pre> |
||
=== 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 |
|||
{{Achtung|Leider können solche ACLs nur auf Verzeichnisse angewendet werden.}} |
|||
==== Besondere Gruppen im AFS ==== |
|||
{| {{Prettytable}} |
|||
! 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: |
|||
{| {{Prettytable}} |
|||
! Recht |
|||
! Langform |
|||
! Bedeutung |
|||
|- |
|||
| l || '''L'''ookup || Auflisten des Inhaltes des Verzeichnisses und Anzeige der ACL |
|||
|- |
|||
| i || '''I'''nsert || Einfügen/Anlegen von Dateien/Verzeichnissen in dem Verzeichnis |
|||
|- |
|||
| d || '''D'''elete || Löschen von Dateien/Verzeichnissen in dem Verzeichnis |
|||
|- |
|||
| a || '''A'''dminister || Ändern der ACL des Verzeichnisses |
|||
|- |
|||
| r || '''R'''ead || Lesen von Dateien |
|||
|- |
|||
| w || '''W'''rite || Schreiben/Ändern von Dateien ({{IconAchtung}} nicht neue Dateien anlegen) |
|||
|- |
|||
| k || Loc'''k''' || Sperren von Dateien mit '''flock''' |
|||
|- |
|||
|} |
|||
Damit man diese Rechte nicht immer alle einzeln angeben muss, |
|||
gibt es folgende kurzen ''Aliase'': |
|||
{| {{Prettytable}} |
|||
! Alias |
|||
! Ausführlich |
|||
! Bedeutung |
|||
|- |
|||
| write || rlidwk || Schreiben (alle außer '''A'''dminister) |
|||
|- |
|||
| 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|{{IconAchtung}} 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 === |
|||
{{IconAchtung}} |
|||
Wichtig für AFS sind '''synchrone Zeiten''' der Systemuhren, |
|||
deshalb sollte auf jedem Client die Uhrzeit auch stimmen (siehe [[EDV:NTP|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. |
|||
=== [[EDV:OpenAFS/Install_i386_linux26|Linux-Client]] === |
|||
[[EDV:OpenAFS/Install_i386_linux24]] |
|||
[[EDV:OpenAFS/Install_i386_linux26]] |
|||
=== [[EDV:OpenAFS/Install_sun4x_510|Solaris]] === |
|||
[[EDV:OpenAFS/Install_sun4x_59]] |
|||
[[EDV:OpenAFS/Install_sun4x_510]] |
|||
=== [[EDV:OpenAFS/Install_hp_ux110|HP-UX]] === |
|||
[[EDV:OpenAFS/Install_hp_ux110]] |
|||
=== [[EDV:OpenAFS/Install_winxp|Windows]] === |
|||
[[EDV:OpenAFS/Install_winnt]] |
|||
[[EDV:OpenAFS/Install_winxp]] |
|||
Erstmal die allgemeine Doku: http://www.openafs.org/pages/doc/QuickStartWindows/awqbg002.htm#ToC |
|||
== 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/ |
|||
{{Achtung|Nun wird versucht, das Kerberos-Passwort zu setzten. |
|||
Falls eine Fehlermeldung erscheint, müssen Sie sich and die [[EDV:EDV-Abteilung|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: |
|||
{| {{Prettytable}} |
|||
!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''' |
|||
| |
|||
|- |
|||
|} |
|||
Ein etwas älteres Beispiel: |
|||
Installation des Clients im KIP: [[EDV:OpenAFS/Install_winxp]] |
|||
Latest revision as of 13:51, 7 March 2013
Allgemeines
Hier im KIP wird OpenAFS als zentrales Netzwerk-Dateisystem verwendet.
AFS (Andrew File System) ist ein Dateisystem, das die plattformübergreifende gleichzeitige Nutzung von Dateien zwischen mehreren Rechnern ermöglicht. Es beinhaltet Funktionen zur Zugriffskontrolle (ACLs), Authentifizierung (Kerberos), verschlüsselte Datenübertragung (fcrypt) und einiges mehr...
Ursprünglich wurde es an der Carnegie Mellon Universität entwickelt, und danach von der Transarc Corporation, die 1994 von IBM übernommen wurde, vermarktet.
Seit 2000 existiert eine parallele Open Source Weiterentwicklung.
Client Installation
Um sich mit dem AFS-Dateiserver zu verbinden, benötigt man (wer hätte das gedacht) eine entsprechende Client-Software. Diese ist für fast alle Betriebssysteme kostenlos verfügbar.
Weitere Informationen zum Thema:
- FAQ für das AFS im KIP: OpenAFS/FAQ
- Das Orginal OpenAFS User Guide
- Das Rechenzentrum hat auch ein AFS: http://www.urz.uni-heidelberg.de/datenhaltung/afs/
Verwendung
Um mit dem AFS-Server arbeiten zu können, muss man sich zuerst authentifizieren (siehe auch Authentifizierung ), da man sonst nur die Reche der Gruppe system:anyuser (also Anonymous / Gast) erhält. Mit diesen ist nur der Zugriff auf allgemeine (öffentliche) Dateien möglich. OpenAFS arbeitet dabei mittlerweile mit Kerberos Verion 5 (Kerberos). Man kann dazu auch die FAQ durchlesen, insbesondere: "Was ist ein Ticket und/oder Token".
Wegen der Rechte im AFS (Access Control Lists) werden 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. Weitere Informationen zur Benutzung von AFS.
Wichtig für AFS sind synchrone Zeiten der Systemuhren! Deshalb sollte auf jedem Client die Uhrzeit auch stimmen (siehe NTP), sonst kann es passieren, dass die Authentifikation fehlschlägt. |
Wichtige Konfigurationsdateien
Falls es mal zu Problemen mit dem OpenAFS-Client kommt, ist es gut zu wissen, wo welche Einstellung steht ;)
Nachfolgend die wichtigsten KIP-AFS spezifischen Konfigurationsdateien.
CellServDB
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
Achtung der 2. Teil ist nicht nur ein Kommentar, dort muss der vollständige Name des Servers stehen (für aklog)! |
Diese Datei befindet sich auch
- im AFS unter: /afs/kip/common/etc/CellServDB
und kann für die Einstellungen genutzt, bzw. einfach ins Konfigurationsverzeichnis kopiert werden.
- unter Linux meist in: /etc/openafs/CellServDB
- unter Windows vermutlich in: C:\Programme\OpenAFS\Client\CellServDB
ThisCell
Unsere Zelle (Cell) im KIP ist natürlich kip.uni-heidelberg.de,somit enthält die ThisCell-Datei entsprechend nur den Eintrag:
kip.uni-heidelberg.de
CellAlias (nur für -dynroot)
Wenn /afs dynamisch generiert wird, sollte die CellAlias-Datei folgendes beinhalten:
kip.uni-heidelberg.de kip alihlt.cern.ch alihlt urz.uni-heidelberg.de urz
Diese Datei muss gegebenenfalls im Konfigurationsverzeichnis des Clients erzeugt werden
- unter Unix / Linux ist das meist: /etc/openafs/CellAlias oder /usr/vice/etc
- unter Windows: C:\Programme\OpenAFS\Client\CellServDB
Dieses Beispiel auch im AFS und kann von dort aus kopiert werden:
cp /afs/kip.uni-heidelberg.de/common/etc/CellAlias /etc/openafs
Damit diese Datei neu eingelesen wird, muss der AFS-Client neugestartet werden. Wenn das nicht geht, können diese Aliase auch temporär manuell erzeugt werden:
fs newalias kip kip.uni-heidelberg.de fs newalias alihlt alihlt.cern.ch fs newalias urz urz.uni-heidelberg.de fs listalias
krb5.conf
Die Datei krb5.conf (oder auch krb5.ini) beinhaltet Informationen über den Kerberos-Realm, in dem sich der Client befindet. Kerberos wird über diese Text-Datei konfiguriert.
- im AFS unter: /afs/kip/common/etc/krb5.conf
- im Web unter: http://kip1.kip.uni-heidelberg.de/afs/common/etc/krb5.conf
Auf dem lokalen Client-System befindet sie sich:
- unter Linux in: /etc/krb5.conf
- unter Windows in: C:\ProgramData\Kerberos\krb5.conf
- oder auch in: C:\Windows\krb5.ini
und ihr Inhalt sieht in etwa so aus:
### KIP krb5.conf - date: 21.11.2012 ### [libdefaults] allow_weak_crypto = true default_realm = KIP.UNI-HEIDELBERG.DE ticket_lifetime = 2d renew_lifetime = 8d # The following krb5.conf variables are only for MIT Kerberos. kdc_timesync = 1 ccache_type = 4 forwardable = true proxiable = true renewable = true # The following libdefaults parameters are only for Heimdal Kerberos. v4_instance_resolve = false [realms] KIP.UNI-HEIDELBERG.DE = { kdc = ldap2.kip.uni-heidelberg.de kdc = afsback.kip.uni-heidelberg.de kdc = ldap.kip.uni-heidelberg.de admin_server = ldap.kip.uni-heidelberg.de } [domain_realm] .kip.uni-heidelberg.de = KIP.UNI-HEIDELBERG.DE kip.uni-heidelberg.de = KIP.UNI-HEIDELBERG.DE [login] krb4_convert = false krb4_get_tickets = false
Ein etwas älteres Beispiel:
Installation des Clients im KIP: EDV:OpenAFS/Install_winxp