exports(5) NFS Konfigurationsdatei

SYNTAX

/etc/exports

BESCHREIBUNG

Die Datei /etc/exports enthält eine Liste der Dateisysteme, die möglicherweise an NFS Clients exportiert werden. Sie wird sowohl vom NFS Mount Dämon, mountd(8), als auch vom NFS file server dämon, nfsd(8), benutzt.

Das Format der Datei ist das gleiche wie bei der SunOS exports-Datei, mit der Ausnahme, dass verschiedene Erweiterungen möglich sind. Jede Zeile enthält einen Mount-Point und eine Liste von Rechnern oder Netzgruppen, die dieses Dateisystem von diesem Punkt mounten dürfen. Optional kann nach jedem Rechner- oder Netzgruppennamen in Klammern noch eine Liste von Parametern angegeben werden. Leere Zeilen werden ignoriert und ein Hashmark (#) deklariert den Rest der Zeile als Kommentar.

Allgemeine Optionen

secure
Diese Option macht es erforderlich, dass NFS-Requests von einem Internet Port kleiner als IPPORT_RESERVED (1024) stammen. Dieses ist die Voreinstellung, um sie auszuschalten, wird insecure geschrieben.
ro
Erlaubt nur lesenden (read-only) Zugriff auf das NFS-Dateisystem. Voreingestellt ist beides, auch schreibender Zugriff. Um diesen explizit einzustellen, kann rw geschrieben werden.
link_relative
Wandelt absolute symbolische Links (wenn der Pointer mit einem Schrägstrich beginnt) in relative Links um, indem eine entsprechende Anzahl von ../'en vorangestellt wird, um vom Verzeichnis mit dem Link zum Hauptverzeichnis zu gelangen. Dieses ist ein heikles, vielleicht sogar fragwürdiges Verhalten, insbesondere, wenn der Verzeichnisbaum nicht als Rootverzeichnis gemountet ist.
link_absolute
Lässt alle symbolischen Links wie sie sind. Dieses ist das normale Verhalten.

User ID Umwandlung

Der nfsd greift auf Dateien auf der Server-Maschine mit der User und Group ID zu, die bei jedem NFS-Request vom Client angegeben werden. Das normale Verhalten, das ein Benutzer erwarten würde, ist, da"s er auf die Dateien auf dem Server genauso zugreifen kann wie im normalen Dateisystem. Dafür werden sowohl auf dem Server- als auch auf dem Client-Rechner die gleichen User und Group IDs benötigt. Das ist jedoch nicht immer der Fall und oft auch nicht erwünscht.

Oftmals ist es nicht wünschenswert, dass der User root auf einem Client auf dem Server-Rechner ebenfalls root-Rechte hat, wenn er auf Dateien zugreift. Daher wird die UID 0 normalerweise in eine andere umgewandelt: in eine anonyme bzw. in die nobody UID. Dieses (`root squashing' genannt) ist das vorgegebene Verhalten, es kann mit no_root_squash. ausgeschaltet werden.

Der nfsd versucht beim Start die anonymen User und Group IDs herauszufinden, indem er in der Passwortdatei nach dem User nobody sucht. Findet er diesen nicht, dann nimmt er als UID und GID -2 bzw. 65534. Diese Werte können mit den Optionen anonuid und anongid überschrieben werden.

Zusätzlich erlaubt der nfsd dem Systembetreiber willkürlich weitere User und Group IDs auf die anonymen abzubilden. Zum Schluss können auch alle Zugriffe unter der anonymen UID durchgeführt werden, wenn die Option all_squash angegeben wird.

Um Installationen zu unterstützen, bei denen die UIDs auf dem Server und die auf den Clients unterschiedlich sind, bietet der nfsd eine Möglichkeit, diese dynamisch umzuwandeln. Eingeschaltet wird es mit der map_daemon Option. Für die Abbildung von Server-UIDs auf Client-UIDs und umgekehrt muss der ugidd(8) Mapping Dämon auf dem Client laufen, der sich auf das UGID RPC Protokoll abstützt.

Hier ist eine komplette Liste aller Mapping-Optionen:

root_squash
Wandelt Zugriffe von UID/GID 0 auf die anonyme UID/GID um. Man beachte, dass dieses keine weiteren UIDs betrifft die ähnlich empfindlich sind wie z.B. die User bin oder uucp.
no_root_squash
Schaltet root squashing aus. Diese Option ist hauptsächlich für Diskless Clients sinnvoll.
squash_uids und squash_gids
Hier kann eine Liste von UIDs bzw. GIDs angegeben werden, die auf die anonyme abgebildet werden sollen. Eine gültige Zeile kann so aussehen:
squash_uids=0-15,20,25-50
Normalerweise wird diese Liste viel einfacher aussehen, z.B.:
squash_uids=0-100
all_squash
Wandelt alle UIDs und GIDs in die anonyme um. Das ist für exportierte, öffentliche FTP-Verzeichnisse, News-Spool-Verzeichnisse sinnvoll. Die gegenteilige Option ist no_all_squash, die auch voreingestellt ist.
map_daemon
Diese Option schaltet die dynamische UID/GID-Umwandlung mit dem UGID RPC Protokoll ein. Jede UID in einem NFS-Request wird übersetzt in die äquivalente UID auf der Server-Maschine und umgekehrt. Diese erfordert allerdings den rpc.ugidd(8), der auf dem Client laufen muss. Die Voreinstellung ist jedoch map_identity, die alle UIDs so belässt. Die normalen Squash-Optionen werden unabhängig von dynamischer Umwandlung angewendet.
anonuid und anongid
Diese Optionen setzen explizit die UID bzw. GID für den anonymen User. Sie sind vor allem für PC-NFS-Clients sinnvoll, bei denen alle Requests vom gleichen Benutzer kommen sollen. Man stelle sich den Eintrag für das Verzeichnis /home/joey im unteren Beispiel vor, der alle Requests auf die UID 501 (nämlich die vom User joey) umwandelt.


BEISPIEL

# Beispielhafte /etc/exports Datei
/               master(rw) trusty(rw,no_root_squash)
/projects       proj*.local.domain(rw)
/usr            *.local.domain(ro) @trusted(rw)
/home/joey      pc007(rw,all_squash,anonuid=501,anongid=100)
/pub            (ro,insecure,all_squash)

Die erste Zeile besagt, dass das komplette /-Dateisystem an die beiden Maschinen master und trusty exportiert werden. Zusätzlich zum erlaubten Schreibzugriff ist die Umwandlung der Superuser-ID 0 für den Rechner trusty ausgeschaltet.

Die nächsten beiden Zeilen geben ein Beispiel für Wildcard-Rechnernamen und Netzwerkgruppen (der Eintrag @trusted ist ein solcher). Die vierte Zeile beschreibt einen Eintrag für einen PC-NFS-Client wie oben angesprochen.

Die letzte Zeile exportiert das FTP /pub-Verzeichnis an jeden Rechner in der Welt (der am Internet teilnimmt). Alle Zugriffe werden unter der anonymen UID durchgeführt. Die insecure-Option erlaubt auch Clients den Zugriff, die keine reservierten Ports verwenden.

WARNUNG

Im Unterschied zu anderen Implementierungen erlaubt dieser nfsd den Export von Verzeichnissen und Unterverszeichnissen, auch an den gleichen Rechner, z.B. /usr und /usr/X11R6. In diesem Fall gelten die Optionen für den am genauesten übereinstimmenden Eintrag. Wenn beispielsweise ein Benutzer auf einem Client auf eine Datei in /usr/X11R6 zugreift, dann gelten die Optionen im /usr/X11R6 Eintrag. Dieses gild ebenfalls, wenn es sich um Wildcard oder Netzgruppen handelt.

DATEIEN

/etc/exports
Konfigurationsdatei für den nfsd(8).
/etc/passwd
Die Passwortdatei.

BESONDERHEITEN

Fehler bei der Interpretation der exports-Datei werden über die syslog(3) Funktion mit der Facility DAEMON und dem Level NOTICE berichtet, wenn der nfsd(8) oder mountd(8) gestartet werden.

Jeder unbekannte Rechner wird zur gleichen Zeit berichtet, oftmals sind dem named(8) zur Startzeit allerdings noch nicht alle Rechner bekannt. Sie werden ebenfalls bemängelt.