BlackBoard Debian Server Tutorial http://www.black-board.net Kapitel 15: NFS =============== (1) Was ist NFS? (2) Installation (3) Server (4) Client (5) Misc (6) Links (1) Was ist NFS? Das Network File System (NFS) ist ein verteiltes Dateisystem, mit dessen Hilfe der User entfernte Verzeichnisse einhängen kann und diese so nutzen kann, als wären sie auf dem lokalen Rechner vorhanden. NFS arbeitet nach dem Client- Server-Modell, indem ein Server die Verzeichnisse exportiert und der Client diese in seinen Verzeichnisbaum einhängt und somit der Zugriff ermöglicht wird. Mit NFS ist es nicht mehr notwendig, Kopien der Dateien auf mehreren Rechnern vorzuhalten, da alle Clients auf die Dateien des Servers zurückgreifen können. (2) Installation benötigte Pakete: nfs-common - Server/Client portmap - Server/Client nfs-kernel-server - Server Theoretisch ist es auch möglich NFS ohne den Portmapper zu betreiben. Da dies in der Vergangenheit aber des Öfteren zu Problemen führte, wird diese Möglichkeit hier nicht besprochen. (3) Server Die Konfiguration des Servers ist relativ einfach, da hier lediglich die Shares in das Configfile '/etc/exports' einzutragen sind. Jeder Eintrag in dieser Datei besteht aus mindestens 2 Spalten und repräsentiert einen Share und seine Zugriffseigenschaften: directory node1(option11,option12) node2(option21,option22) 1. Spalte (directory) das Verzeichnis welches freigegeben werden soll, hierzu gehören auch alle Unterverzeichnisse 2. Spalte (node1) IP -oder DNS-Adresse der NFS-Clients, die dieses Verzeichnis mounten dürfen Beispiele für gültige Einträge: 192.168.0.2 192.168.0.0/24 pc001 *.local.domain Wird hier nichts eingetragen ist der Share für jeden Client erreichbar (auch über das Internet). Optionen (für weitere Optionen siehe man exports): - ro read-only, nur Lesezugriff (default) - rw Lese-/Schreibzugriff - no_root_squash In der Defaulteinstellung (root_squash) wird root auf den User nobody gemapped, d.h. der root-User des Clients hat auf dem Share nur die Rechte des Users nobody. Wird nun die Option no_root_squash verwendet hat der Root-User des Clients auf dem Share ebenfalls Root-Rechte. - sync Synchronisiert Schreib- und Lesezugriffe. Neue Schreibzugriffe werden erst entgegengenommen, wenn der vorherige Schreibvorgang abgeschlossen ist. (default) - async Erlaubt dem NFS-Server gegen das NFS-Protokoll zu verstoßen und Anfragen zu beantworten bevor die Änderungen auf die Festplatte geschrieben wurden. Nachdem die Konfiguration abgeschlossen ist, muss lediglich der NFS-Server mit "/etc/init.d/nfs-kernel-server start" gestartet werden. Mit Hilfe des Befehls "rpcinfo -p" lässt sich noch prüfen, ob der Server läuft. Um zu prüfen welche Verzeichnisse im Netz mit welchen Optionen freigegeben sind, verwendet man den Befehl "exportfs -v". (4) Client Ist ein Server entsprechend konfiguriert, muss der entsprechende Share nur noch auf der Clientseite gemountet werden. mount -t nfs -o rw,hard,intr server:/share /mnt/share Eintrag in der /etc/fstab # server:/share /mnt/share nfs rw,hard,intr 0 0 Einige Mountoptionen sollte man unbedingt einschalten, da sie das Verhalten des Clients bei einem Server-Crash oder einem Zusammenbruch des Netzwerkes bestimmen. Zu empfehlen ist der Gebrauch der beiden Optionen hard und intr. hard Der Share wird explizit "hart" gemountet (default). Bei einem längeren Timeout wird eine Fehlermeldung auf der Konsole ausgegeben und die Verbindungsversuche werden fortgesetzt. intr Ermöglicht die Unterbrechung von NFS-Aufrufen über Signale. Nützlich, wenn ein Server nicht antwortet und der Client abgebrochen werden muß. (5) Misc Wie bereits zu Beginn erwähnt, wird der Share auf dem Client wie ein lokales Filesystem behandelt. Des Weiteren sollte man wissen, dass Linux die Zugriffs- rechte nicht aufgrund des Benutzernamens verwaltet, sondern anhand der zugrunde- liegenden UID (dies könnte an der einen oder anderen Stelle zu Sicherheitspro- blemen führen). User UID Server: root 0 user_x 501 Client: root 0 user_y 501 In diesem Bespiel hätte user_y auf dem Client auf einmal Zugriff auf die Dateien des user_x auf dem Server. Da dies nicht immer gewollt ist, gibt es das soge- nannte Squashing (siehe auch (4)), wodurch auf anonyme User gemappt werden kann (siehe auch: man exports). Einige interessante Befehle für die Fehlersuche: - exportfs -v zeigt die exportierten Verzeichnisse - showmount zeigt, welche Clients auf den Server zugreifen - nfsstat einige Statistikdaten (6) Links NFS-Homepage: http://nfs.sourceforge.net Alternativen zu NFS: SHFS: http://shfs.sourceforge.net AFS: http://www.openafs.org Coda: http://www.coda.cs.cmu.edu -- HazardEvil