9.3. NFS-Server-Konfiguration

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:

/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:

WichtigWichtig
 

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.

WarnungWarnung
 

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:

/home bob.example.com(rw)
/home bob.example.com (rw)

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:

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:

mkdir /exports
mkdir /exports/opt
mkdir /exports/etc
mount --bind /usr/local/opt /exports/opt
mount --bind /usr/local/etc /exports/etc
exportfs -o fsid=0,insecure,no_subtree_check gss/krb5p:/exports
exportfs -o rw,nohide,insecure,no_subtree_check gss/krb5p:/exports/opt
exportfs -o rw,nohide,insecure,no_subtree_check gss/krb5p:/exports/etc

In diesem Beispiel werden Clients mit mehrfachen zu mountenden Dateisystemen mittels der --bind-Option versehen.