Mit dem Kernel 2.1 wurde erstmals ein Kernel-basierender NFS-Dämon vorgestellt. Dadurch wird versucht, diesen doch recht verbreiteten Dienst durch direkte Unterstützung im Kernel zu optimieren. Besonders den bislang unbefriedigenden Durchsatz beim Schreiben auf ein NFS-Verzeichnis hofft man hiermit zu beschleunigen (das Umkopieren der Daten vom Nutzer- in den Systemadressraum wird vermieden). Noch steckt dieser in den Kinderschuhen und beinhaltet vermutlich eine Reihe von Fehlern. Dennoch möchte ich im Laufe dieses Kapitels auf die Konfiguration dieses Dämons eingehen.
Die Konfigurationsdatei für beide NFS-Dämons (User-Space und Kernel) ist
/etc/exports
.
In ihr sind alle zu exportierenden Dateisysteme
zusammen mit den Zugriffsrechten enthalten:
# Aufbau einer /etc/exports
|
Jedes vom Server zu exportierende Verzeichnis ist auf einer neuen Zeile anzugeben. Alle weiteren Angaben sind optional. Der Zugriff auf ein Verzeichnis kann auf bestimmte Rechner/Netzgruppen beschränkt werden. Folgende Syntaxvarianten werden unterstützt:
Format der Rechnernamen | Bedeutung | |
mars |
Einzelner Rechner (hier kann auch die IP-Adresse stehen) | |
@netgroup |
Eine Zusammenfassung von Rechnern in eine Gruppe. Eine solche Gruppe
muss in der Datei /etc/netgroup existieren. |
|
[a-d]*.galaxis.de |
Bei Angabe von Wildcards expandiert der Eintrag zu allen bekannten Rechnernamen, die dem Muster entsprechen. | |
localnet |
Alle Rechner des angegebenen Netzes. Entweder wird die IP-Adresse des Netzwerkes
eingetragen oder der Name des Netzwerkes (dieser muss in der Datei
/etc/networks
stehen). |
|
=public |
Dieser spezielle "Rechnername" definiert ein Verzeichnis als öffentliches
Wurzelverzeichnis und wird in Verbindung mit WebNFS genutzt. Ein Webbrowser kann
auf ein solches Verzeichnis unter Umgehung des Mount-Protokolls zugreifen. Somit können
auch Webbrowser von Nicht-Unix-Systemen (die i.d.R. das Mount-Protokoll nicht unterstützen)
auf ein so exportiertes Verzeichnis zugreifen. Dem Eintrag
|
Mit Hilfe von Optionen können die Berechtigungen beim Zugriff durch importierende Rechner gesteuert werden:
Option (Auswahl) | Bedeutung |
secure |
Zugriff ist nur für Anforderungen an "vertrauenswürdigen"
Internetports (< 1024) erlaubt. Das Gegenstück ist insecure .
|
ro, rw |
Lesender (ro) bzw. schreibender (rw) Zugriff erlaubt. |
noaccess |
Kein Zugriff für die spezifizierten Rechner. |
root_squash |
Die Nutzer-/Gruppen-ID 0 (root) wird auf Nobody/Nogroup (-2) gemappt. Hierdurch verliert
der Systemverwalter des importierenden Rechners seine Sonderrechte auf dem importierten
Verzeichnis. Soll Root auch dieses verwalten dürfen, ist die Option no_root_squash
zu setzen.
|
all_squash |
Alle Nutzer-/Gruppen-IDs werden auf Nobody/Nogroup (-2) gemappt. Das Gegenstück ist
no_all_squash . Behalten die Nutzer ihre UIDs auf importierenden Rechnern, sollte
sicher gestellt werden, dass alle UIDs im Netz eindeutig sind, da Zugriffsrechte nur anhand der
UID/GID verifiziert werden und nicht anhand von Nutzer-/Gruppennamen! |
squash_uids, squash_gids |
Hier können spezielle UIDs/GIDs auf Nobody/Nogroup (-2) gemappt werden. Die
Syntax lautet squash_uids=18-15,23,27,30-100 . |
anonuid, anongid |
Jede UID/GID wird auf Nobody/Nogroup (-2) gemappt. Die Option ist sinnvoll, wenn die Clients das Nutzerkonzept nicht kennen (z.B. DOS). |