Das Konfigurieren eines Systems zur gemeinsamen Nutzung von Dateien und Verzeichnisse mithilfe von NFS ist einfach. Jedes Dateisystem, das via NFS an Remote-Benutzer exportiert wurde, sowie die Zugriffsrechte für diese Dateisysteme werden in der Datei /etc/exports abgelegt. Diese Datei wird mit dem Befehl exportfs gelesen. Dadurch erhalten rpc.mountd und rpc.nfsd die notwendigen Informationen, die benötigt werden, um das Remote-Mounting eines Dateisystems durch einen autorisierten Host zuzulassen.
Mit dem Befehl exportfs können Sie Verzeichnisse exportieren, ohne die verschiedenen NFS-Dienste neu starten zu müssen. Wenn exportfs die korrekten Optionen erhält, wird das zu exportierende 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 exportfs stehen verschiedene Optionen zur Verfügung:
-r — Alle, in /etc/exports aufgelistete 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 exportfs gewählt wurden.
-o Optionen — Ermöglicht dem Benutzer, Verzeichnisse zum Exportieren festzulegen, die nicht in /etc/exports aufgeführt sind. Diese zusätzlichen Dateisystem-Shares müssen auf dieselbe Weise gespeichert werden, wie sie in /etc/exports angegeben sind. Diese Option wird verwendet, um exportierte Dateisysteme zu testen, bevor sie endgültig zu der Liste der zu exportierenden Dateisysteme hinzugefügt werden.
-i — Weist exportfs an, /etc/exports zu übergehen; in diesem Fall werden nur die Optionen, die von der Befehlszeile aus eingegeben wurden, zum Definieren der exportierten Dateisystems verwendet.
-u — Exportiert keine Verzeichnisse, die von Remote-Benutzern gemountet wurden. Der Befehl exportfs -ua unterbricht das NFS-Datei-Sharing und führt die verschiedenen NFS-Daemonen weiter aus. Geben Sie den Befehl exportfs -r ein, um das NFS-Datei-Sharing 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 exportfs keine Optionen eingegeben werden, wird eine Liste der aktuell exportierten Dateisysteme angezeigt.
Änderungen in /etc/exports können gelesen werden, indem der NFS-Dienst mithilfe des Befehls service nfs reload neu geladen wird. Dabei wird der NFS-Daemon weiterhin ausgeführt, während die Datei /etc/exports erneut exportiert wird.
Die Datei /etc/exports wird standardmäßig verwendet, um zu kontrollieren, welche Dateisysteme an welchen Host exportiert werden. Weiterhin wird sie verwendet, um bestimmte Optionen einzustellen, mit denen alles kontrolliert werden kann. Leere Zeilen werden ignoriert, Kommentare können mithilfe von # eingegeben werden, und lange Zeilen können durch einen Backslash (\ ) umgebrochen werden. Jedes exportierte Dateisystem sollte eine eigene Zeile haben. Listen von nicht 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 ist kein Leerzeichen.
/etc/exports benötigt in seiner einfachsten Form nur das Verzeichnis, das exportiert wird und den Host, der es verwenden kann:
/some/directory bob.example.com /another/exported/directory 192.168.0.3 |
Nachdem /etc/exports erneut mit dem Befehl /sbin/service nfs reload exportiert wurde, kann der Host bob.example.com die Datei /some/directory sowie 192.168.0.3 die Datei /another/exported/directory mounten. Da in diesem Beispiel keine Optionen festgelegt sind, werden verschiedene NFS-Präferenzen aktiviert:
ro — Schreibgeschützt. Hosts, die dieses Dateisystem mounten, können es nicht ändern. Wenn Sie zulassen möchten, dass in dem Dateisystem Änderungen vorgenommen werden können, müssen Sie die Option rw verwenden (read-write, lesen-schreiben).
async — Ermöglicht dem Server, in einer bestimmten Situation Daten auf die Platte zu schreiben. Diese Option ist in dem Fall uninteressant, wenn der Host nur schreibgeschützt auf Daten zugreifen kann. Wenn jedoch ein Host ein Dateisystem im Read-Write-Modus ändert, können im Fall eines Absturzes des Servers Daten verloren gehen. Bei der Option sync werden alle Dateien auf der Platte gesichert, bevor der Schreibschutz- Modus aufgehoben wird. Dadurch könnte die Leistung verlangsamt werden.
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 Remote verbunden sind, deren Root-Rechte, indem diese die "nobody" Userid erhalten. Auf diese Weise wird die Kontrolle des Remote-Roots auf den niedrigsten lokalen Benutzer reduziert, was verhindert, dass der Remote-Benutzer auf dem lokalen System als Root agiert. Alternativ können Sie mit der Option no_root_squash das "Sqashing" des Roots deaktivieren. Um jeden Remote-Benutzer, einschließlich Root zu squashen, 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 ein spezielles Benutzer-Konto für Remote-NFS- Benutzer erstellen, um die Option (anonuid= <UID-Wert>, anongid= <GID-Wert>) festzulegen und gemeinsam zu verwenden. Hierbei steht <UID-Wert> für die ID-Nummer des Benutzers und <GID-Wert> für die ID-Nummer der Gruppe.
Um diese Standards zu übersteuern, müssen Sie eine Option festlegen, die diese Standards ersetzt. Wenn Sie zum Beispiel die Option rw nicht festlegen, werden exportierte Dateisysteme im Schreibschutzmodus verwendet. Für jedes exportierte Dateisystem müssen die Standardeinstellungen explizit übersteuert werden. 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 unsicheren Ports den Zugriff 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.
Es gibt verschiedene Möglichkeiten, festzulegen, dass Hosts ein bestimmtes exportiertes Dateisystem verwenden können:
single host — Ein bestimmter Host, einschließlich des kompletten Domain-Names, des Hostnamens oder der IP-Adresse wird festgelegt.
wildcards — Die Zeichen * oder ? werden verwendet, um eine Gruppierung von FQDNs, IP-Adressen oder solchen Namen zu berücksichtigen, die mit einer bestimmten Buchstabenkette übereinstimmen.
Seien Sie jedoch im Umgang mit Wildcards im Zusammenhang mit FQDNs vorsichtig, da sie eine große Genauigkeit verlangen. 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 wie auch sam.corp.example.com, muss die Option wie folgt aussehen: *.example.com *.*.example.com.
IP networks — Erlaubt das Matching von Hosts auf der Basis ihrer IP-Adressen in einem großen Netzwerk. 192.168.0.0/28 läßt zum Beispiel die ersten 16 IP-Adressen von 192.168.0.0 bis 192.168.0.15 zu, um auf das exoprtierte Dateisystem zuzugreifen, aber nicht 192.168.0.16 und höher.
netgroups — Lässt einen NIS-Netgroup-Namen zu, der wie folgt geschrieben wird: @<Gruppenname>. 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.
![]() | Warnung | |
---|---|---|
Es ist sehr wichtig, wie die Datei /etc/exports formatiert ist, 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 Read-Write-Modus auf das Verzeichnis /home. Die zweite Zeile erlaubt Benutzern von bob.example.com, das Verzeichnis im schreibgeschützten Modus zu mounten (der Standard), alle anderen können es im Read-Write-Modus mounten. |
Zurück | Zum Anfang | Vor |
Network File System (NFS) | Zum Kapitelanfang | NFS-Client-Konfigurationsdateien |