Es gibt drei Arten, einen NFS-Server unter Red Hat Enterprise Linux zu konfigurieren: die Verwendung von NFS Server Configuration Tool (redhat-config-nfs), die manuelle Ver�nderung der Konfigurationsdatei (/etc/exports), oder die Verwendung des /usr/sbin/exportfs-Befehls.
F�r Anweisungen bez�glich des NFS Server Configuration Tool, siehe Kapitel Network File System (NFS) im Red Hat Enterprise Linux Handbuch zur System-Administration. Der Rest dieses Abschnittes behandelt die manuelle Bearbeitung von /etc/exports und die Verwendung des /usr/sbin/exportfs Befehls f�r den Export von NFS-Dateisystemen.
9.3.1. Die /etc/exports-Konfigurationsdatei
Die Datei /etc/exports kontrolliert, welche Dateisysteme an Remote-Hosts exportiert werden und legt die Optionen fest. Leere Zeilen werden ignoriert, Kommentare k�nnen mithilfe des Rautezeichens # am Zeilenanfang eingegeben werden. Lange Zeilen k�nnen durch einen inversen Schr�gstrich (\ ) umgebrochen werden. Jedes exportierte Dateisystem sollte eine eigene Zeile haben. Listen von autorisierten Hosts, die nach einem exportierten Dateisystem platziert sind, m�ssen durch Leerzeichen getrennt werden. Die Optionen f�r alle Hosts m�ssen in Klammern direkt nach der Hostbezeichnung stehen. Zwischen dem Host und der ersten Klammen darf kein Leerzeichen sein.
Eine Zeile f�r ein exportiertes Dateisystem hat die folgende Struktur:
<export><host1>(<options>) <hostN>(<options>)...
Ersetzen Sie in dieser Struktur <export> mit dem Verzeichnis, das exportiert wird. Ersetzen Sie <host1> mit dem Host oder Netzwerk, mit dem der Export gemeinsam verwendet wird und ersetzen Sie <options> mit den Optionen f�r diesen Host oder dieses Netzwerk. Zus�tzliche Hosts k�nnen in einer Liste durch Leerzeichen getrennt festgelegt werden.
Die folgende Methode kann dazu verwendet werden, Hostnamen festzulegen:
single host — Ein bestimmter Host, einschlie�lich des kompletten Domain-Names, des Hostnamens oder der IP-Adresse wird festgelegt.
wildcards — Dort, wo ein * oder ein ? verwendet werden, um eine Gruppierung von voll qualifizierten Domainnamen zu ber�cksichtigen, die mit einer bestimmten Reihe von Buchstaben �bereinstimmen. Wildcards d�rfen nicht mit IP-Adressen verwendet werden. Es kann aber m�glich sein, dass diese zuf�llig funktionieren, wenn die umgekehrten DNS- Lookups scheitern.
Seien Sie jedoch beim Umgang mit Wildcards im Zusammenhang mit voll qualifizierten Domainnamen vorsichtig, da sie genauer arbeiten k�nnen als erwartet. So erlaubt die Verwendung von *.example.com als Wildcard zum Beispiel sales.example.com den Zugriff auf das exportierte Dateisystem, aber nicht bob.sales.example.com. Um beide M�glichkeiten zu erfassen, m�ssen sowohl *.example.com als auch *.*.example.com festgelegt werden.
IP networks — Erlaubt die �bereinstimmung von Hosts auf der Basis ihrer IP-Adressen in einem gro�en Netzwerk. 192.168.0.0/28 l�sst zum Beispiel die ersten 16 IP-Adressen von 192.168.0.0 bis 192.168.0.15 zu, um auf das exportierte Dateisystem zuzugreifen, aber nicht 192.168.0.16 und h�her.
netgroups — L�sst einen NIS-Netgroup-Namen zu, der wie folgt geschrieben wird: @<group-name>. Dadurch �bernimmt der NIS-Server die Kontrolle f�r den Zugriff auf diese exportierten Dateisysteme, und Benutzer k�nnen ohne Auswirkung auf /etc/exports zu einer NFS- Gruppe hinzugef�gt oder aus einer solchen entfernt werden.
/etc/exports ben�tigt in seiner einfachsten Form nur die Festlegung des Verzeichnisses, das exportiert wird und des Hosts, der es verwenden kann - wie in folgendem Beispiel:
/exported/directory bob.example.com
In diesem Beispiel kann bob.example.com/exported/directory/ mounten. Weil in diesem Beispiel keine Optionen festgelegt wurden, treten die folgenden NFS-Optionen in Kraft:
ro — Schreibgesch�tzte Mounts des exportierten Dateisystems. Remote-Hosts k�nnen die Daten, die auf diesem Dateisystem gemeinsam verwendet werden, nicht ver�ndern. Wenn Sie zulassen m�chten, dass Hosts in dem Dateisystem �nderungen vornehmen, m�ssen Sie die Option rw verwenden (lesen und schreiben).
wdelay — Weist den NFS-Server an, das Schreiben auf einer Platte zu verz�gern, wenn das Aufheben des Schreibschutz-Modus bevorsteht. Dies kann die Leistung verbessern, indem die Anzahl der einzelnen Schreibbefehle f�r die Platte verringert wird. Mit der Option no_wdelay kann diese Funktion deaktiviert werden, die nur funktioniert, wenn Sie die Option sync verwenden.
root_squash — Nimmt Root-Benutzern, welche von au�en verbunden sind, deren Root-Rechte, indem diese die Benutzer-ID nfsnobody erhalten. Auf diese Weise wird die Kontrolle des Remote-Root-Users auf den niedrigsten lokalen Benutzer "gequetscht", was verhindert, dass Dateien auf dem Remote-Server unerlaubterweise ver�ndert werden. Als Alternative k�nnen Sie mit der Option no_root_squash das "Sqashing" des Roots deaktivieren. Um jeden Remote-Benutzer, einschlie�lich Root, zu quetschen, verwenden Sie die Option all_squash. Um die Benutzer- und Gruppen-IDs festzulegen, die mit Remote-Benutzern eines bestimmten Hosts verwendet werden sollen, benutzen Sie die Optionen anonuid und anongid. Auf diese Weise k�nnen Sie f�r Remote NFS-Benutzer ein spezielles Benutzer-Konto (anonuid=<uid-value>,anongid=<gid-value>) erstellen und gemeinsam verwenden, wobei <uid-value>die Benutzer-ID-Nummer und<gid-value> die die gruppen-ID-Nummer ist.
Wichtig
Standardm��ig werden access control lists (ACLs) von NFS unter Red Hat Enterprise Linux unterst�tzt. Um diese Funktion zu deaktivieren, legen Sie die no_acl Option fest, wenn Sie das Dateisystem exportieren. Mehr Informationen zu dieser Funktion finden Sie im Kapitel Network File System (NFS) im Red Hat Enterprise Linux Handbuch zur System-Administration.
Jede standardm��ige Einstellung f�r jedes exportierte Dateisystem muss ausdr�cklich �berschrieben werden. Wenn z.B. die rw Option nicht festgelegt ist, dann wird das exportierte Dateisystem schreibgesch�tzt gemeinsam verwendet. Im Folgenden eine Beispielszeile von/etc/exports, die zwei Standardoptionen �berschreibt:
/another/exported/directory 192.168.0.3(rw,sync)
In diesem Beispiel kann 192.168.0.3/another/exported/directory/ beschreibbar mounten und alle �bertragungen auf die Platte werden auf der Platte gesichert, bevor die Schreibanfrage des Client abgeschlossen wird.
Wo keine Standardwerte angegeben sind, stehen zus�tzliche Optionen zur Verf�gung. Diese bieten die M�glichkeit, das �berpr�fen der Sub-Trees zu deaktivieren, erlauben den Zugriff von unsicheren Ports sowie das Sperren unsicherer Dateien (f�r bestimmte fr�here NFS-Client-Implementierungen notwendig). Auf der exports-man-Seite finden Sie weitere Details �ber diese weniger verwendeten Optionen.
Warnung
Das Format der Datei /etc/exports ist sehr pr�zise gestaltet, besonders im Bezug auf Leerzeichen. Denken Sie daran, exportierte Dateisystem immer getrennt von Hosts aufzuf�hren und Hosts durch Leerzeichen voneinander trennen. Es sollten jedoch keine weiteren Leerzeichen in der Datei sein, es sei denn, sie werden in Kommentarzeilen verwendet.
So bedeuten zum Beispiel die folgenden beiden Zeilen nicht das gleiche:
Die erste Zeile erlaubt nur Benutzern von bob.example.com den Zugriff im beschreibbaren Modus auf das Verzeichnis /home. Die zweite Zeile erlaubt Benutzern von bob.example.com, das Verzeichnis im schreibgesch�tzten Modus zu mounten (der Standard), wohingegen alle anderen es im Lese-/Schreib-Modus mounten k�nnen.
F�r genaue Anweisungen zur Konfiguration eines NFS-Servers durch Bearbeitung von /etc/exports, siehe Kapitel Server Security in der Red Hat Enterprise Linux Handbuch zur System-Administration.
9.3.2. Der exportfs Befehl
Jedes Dateisystem, das via NFS an Remote-Benutzer exportiert wird sowie die Zugriffsrechte f�r diese Dateisysteme werden in der Datei /etc/exports abgelegt. Wenn der nfs Dienst startet, wird diese Datei mit dem /usr/sbin/exportfs Befehl ge�ffnet und gelesen. Dann werden die f�r Remote-Benutzer verf�gbaren Dateien an rpc.mountd (falls NFSv2 oder NFSv3) und rpc.nfsd �bergegeben.
Mit der manuellen Ausf�hrung des Befehls /usr/sbin/exportfs wird dem Root-Benutzer gestattet, Verzeichnisse selektiv zu exportieren oder nicht zu exportieren, ohne den NFS-Dienst neu starten zu m�ssen. Wenn usr/sbin/exportfs die korrekten Optionen erh�lt, wird das exportierte Dateisystem in /var/lib/nfs/xtab gespeichert. Da rpc.mountd sich f�r das Festlegen der Privilegien f�r den Zugriff auf ein Dateisystem auf die Datei xtab bezieht, werden �nderungen an der Liste der exportierten Dateisysteme sofort wirksam.
Bei der Verwendung des Befehls /usr/sbin/exportfs stehen folgende �bliche Optionen zur Verf�gung:
-r — Alle in /etc/exports aufgelisteten Verzeichnisse werden exportiert und in /etc/lib/nfs/xtab wird eine neue Exportliste erstellt. Durch diese Option wird die Exportliste einschlie�lich aller �nderungen, die in /etc/exports vorgenommen wurden, aktualisiert.
-a — Alle Verzeichnisse werden exportiert oder nicht exportiert, je nachdem, welche anderen Optionen in /usr/sbin/exportfs gew�hlt wurden. Wenn keine anderen Optionen festgelegt wurden, exportiert /usr/sbin/exportfs alle in /etc/exports festgelegten Dateisysteme.
-o file-systems — Erm�glicht dem Benutzer Verzeichnisse zum Exportieren festzulegen, die nicht in /etc/exports aufgef�hrt sind. Ersetzen Sie file-systems mit den zus�tzlichen Dateisystemen, die exportiert werden sollen. Diese Dateisysteme m�ssen auf dieselbe Weise formatiert werden, wie sie in /etc/exports angegeben sind. Siehe Abschnitt 9.3.1 f�r weitere Informationen �ber die /etc/exports Syntax. Diese Option wird oft verwendet, um exportierte Dateisysteme zu testen, bevor sie endg�ltig zu der Liste der zu exportierenden Dateisysteme hinzugef�gt werden.
-i — Ignoriert /etc/exports; nur die Optionen, die von der Befehlszeile aus eingegeben wurden, werden zum Definieren der exportierten Dateisysteme verwendet.
-u — Hebt den Export aller gemeinsam verwendeter Verzeichnisse auf. Der Befehl /usr/sbin/exportfs -ua unterbricht die gemeinsame Verwendung von NFS-Dateien, w�hrend alle NFS-Daemone weiter arbeiten. Geben Sie den Befehl exportfs -r ein, um die gemeinsame Verwendung von NFS-Dateien wieder fortzusetzen.
-v — Verbose Operation, bei der exportierte oder nicht exportierte Dateisysteme detaillierter angezeigt werden, wenn der Befehl exportfs ausgef�hrt wird.
Wenn f�r den Befehl /usr/sbin/exportfs keine Optionen eingegeben werden, wird eine Liste der aktuell exportierten Dateisysteme angezeigt.
F�r weitere Informationen �ber den /usr/sbin/exportfs Befehlsiehe exportfs man-Seite.
9.3.2.1. Den Befehl exportfs mit NFSv4 verwenden
Da NFSv4 nicht mehr l�nger das Protokoll rpc.mountd wie in NFSv2 und NFSv3 anwendet, hat sich das Mounten von Dateisystemen ge�ndert.
Ein NFSv4-Client hat nunmehr die F�higkeit alle Exporte des NFSv4-Servers als ein einziges Dateisystem zu sehen, welches NFSv4 Pseudo-Dateisystem genannt wird. Auf Red Hat Enterprise Linux wird das Pseudo-Dateisystem als ein einzelnes, reales Dateisystem beim Export mit der Option fsid=0 identifiziert.
So k�nnen zum Beispiel folgende Befehle auf einem NFSv4-Server ausgef�hrt werden: