Installation
sudo apt-get install nfs-kernel-server
Konfiguration
Konfigurations-File für den NFS-Server: /etc/exports
<Verzeichnis> <Computername>(<Optionen>) /home/fuer_alle 192.168.0.111(ro,async,no_subtree_check) /home/patrick/downloads 192.168.0.111(ro,async,no_subtree_check) #Freigaben fuer Repositories /home/repo 192.168.0.0/24(ro,sync,no_subtree_check) #Freigabe des Foto-Verzeichnisses fuer Popcorn-hour /home/Fotos 192.168.0.111(ro,async,no_subtree_check)
Optionen:
Parameter | Beschreibung |
---|---|
ro | Read only |
secure, insecure | Client-Anfragen werden nur von vertrauenswürdigen Ports (Portnummern unterhalb 1024) akzeptiert (»secure«, Voreinstellung); mit »insecure« werden auf Anfragen an höhere Ports akzeptiert |
ro, rw | Das Verzeichnis wird schreibgeschützt (»read only«, Voreinstellung) bzw. mit vollen Lese- und Schreibrechten für den Client (»read/write«) exportiert |
sync, async | Der Server darf den Vollzug eines Schreibvorgang dem Client erst melden, wenn die Daten tatsächlich auf die Platte geschrieben wurden (Ausschalten des Plattencaches). Die Voreinstellung ist async. |
wdelay, no_wdelay | Die Option wird nur in Zusammenhang mit »sync« beachtet und erlaubt dem Server die Bestätigung eines Schreibvorgangs zu verzögern, falls mehrere Schreibvorgänge von einem Client zur gleichen Zeit im Gange sind. Anstatt jeden zu bestätigen, sendet der Server nur eine einzige Antwort nach Vollzug aller Schreiboperationen (betrifft »wdelay«, Voreinstellung). |
hide, nohide | Exportiert der Server ein Verzeichnis, in dem wiederum ein anderes Dateisystem gemeountet ist, so wird dieses nicht an einen Client exportiert (»hide«, Voreinstellung). Dies bedeutet allerdings, dass die Dateisysteme weiterhin alle einzelnd auf der Server-Seite exportiert werden müssen jedoch nicht alle expliziet auf der Client gemountet werden müssen. Die »nohide«-Option (also den impliziten Export) funktioniert jedoch nur, wenn es sich bei der Clientangabe um einen Rechnernamen (keine Wildcards, IP-Netzwerke und Netzgruppen!) handelt. |
subtree_check, no_subtree_check | Werden nur Teile eines Dateisystems vom Server exportiert, so muss der Server prüfen, dass Zugriffe nur auf Dateien erfolgen, die innerhalb dieses Teilbaums liegen (»subtree_check«, Voreinstellung). Dies erhöht zwar die Sicherheit allerdings auf Kosten der Geschwindigkeit, sodass die Prüfung mit »no_subtree_check« abgeschalten werden kann. |
root_squash, no_root_squash | Root erhält die UserID des Pseudobenutzers »nobody«, womit der Root-Benutzer des Client-Rechners keine Root-Rechte auf dem vom Server importierten Verzeichnis erhält (Voreinstellung); mit »no_root_squash« bleiben die Root-Rechte auf Clientseite auf dem Verzeichnis erhalten. |
all_squash, no_all_squash | Alle Zugreifenden erhalten die Nobody-UID; Voreinstellung ist »no_all_squash«, womit die Nutzerkennungen erhalten bleiben |
anongid=gid | Squashing der Gruppe; die Gruppen-ID wird auf »gid« gesetzt. Bei dieser Option kann Root entscheiden, mit welcher Server-GID die Client-Benutzer arbeiten sollen, sobald sie Zugriff auf den Server haben |
anonuid=uid | Squashing des Benutzers. Die zugreifenden Benutzer bekommen die UID »uid« verpasst |
noac | Schaltet alle Formen der Attribut-Zwischenspeicherung komplett aus |
NFS-Server starten
sudo exportfs –ra
oder
sudo /etc/init.d/nfs-kernel-server restart
Mit NFS arbeiten
Wie finde ich jetzt heraus, welche Freigaben existieren und wie arbeite ich damit?
Freigabenamen
Um auf einem Rechner die NFS-Freigaben sichtbar zu machen, muss man
showmount -e <IP>
eingeben. Hier werden alle Freigaben mit Pfad ausgegeben und Berechtigung ausgegeben
Mounten
Diese Freigaben kann man jetzt mit
mount -t nfs <Rechnername>:<Pfad> /<Mountpunkt>
mounten. Bei „<Rechnername>:<Pfad>“ muss man genau den Namen angeben, wie er bei „showmount“ angezeigt wird
Diskussion