Für UNIX-basierte Systeme gibt es zahlreiche Werkzeuge und Möglichkeiten ein Verzeichnis über das Netzwerk mit unterschiedlichen Hosts zu teilen. Unter CentOS existieren dafür beispielsweise Samba und NFS (Network File System). Samba wird häufig in heterogenen Serverlandschaften eingesetzt. Mithilfe dieser Technologie können Verzeichnisse unterschiedlicher Betriebssysteme geteilt werden, so lange die jeweiligen Peers die Samba-Technologie unterstützen.
Das Network File System (NFS) fokussiert die Freigabe zwischen Linux- bzw. UNIX-basierten Systemen. Es wurde in den 1980ern von der Sun Microsystems Gruppe entwickelt und gilt bis heute als Standard-Mechanismus um Dateien über das Netzwerk zu teilen.
Im Folgenden werden wir betrachten wie die NFS-Utils verwendet werden können, um ein Verzeichnis unter Linux/UNIX freizugeben und einzubinden.
Installation
Als Erstes überprüfen wir, ob die NFS-Utilities bereits installiert sind. Dafür können wir den folgenden Befehl über einen Terminal ausführen:
Sollte die Ausgabe des Befehls angeben, dass die Utilities nicht installiert sind, können wir sie mit einem Package-Manager wie yum
die Utilities installieren:
Nach der Installation sollten wir überprüfen, ob der Dienst gestartet ist. Dafür führen wir den folgenden Befehl aus:
Sollte die Ausgabe darauf hinweisen, dass der Dienst nicht gestartet ist, müssen wir dies mit dem folgenden Befehl nachholen:
Firewall konfigurieren
Um sicherzustellen, dass unsere Freigabe nach außen hin sichtbar wird, muss die Firewall entsprechend angepasst werden. Über den Terminal können wir den folgenden Befehl dazu verwenden, eine Ausnahme für die NFS-Funktionalität hinzuzufügen. Anschließend aktualisieren wir die Konfiguration der Firewall, um die Änderungen anzuwenden:
Ein Verzeichnis mit NFS Freigeben
Nach dem die Utilities installiert und die Firewall konfiguriert ist, können wir nun einen Ordner für die Freigabe erstellen. Dafür müssen wir lediglich eine Änderung an der Datei “/etc/exports” vornehmen. Um ein Verzeichnis freizugeben, müssen wir eine neue Zeile an die Datei anhängen. Darin bestimmen wir das Verzeichnis, das freigegeben werden soll, sowie die Restriktionen, wie und mit wem das Verzeichnis geteilt werden soll. Der Syntax für eine Zeile in dieser Datei ist folgender:
Dabei stehen
<export>
für den vollständigen Pfad des Verzeichnisses, das wir freigeben wollen,<host1>
,<host2>
für die Hostnames/IP-Adressen mit denen das Verzeichnis geteilt werden soll und<options>
repräsentiert die Restriktionen, denen die geteilten Dateien unterliegen.
Eine beispielhafte Konfiguration könnte dabei wie folgt aussehen:
In diesem Beispiel erzeugen wir eine Freigabe für das Verzeichnis “/home/test
” für die Remote-Computer mit den IP-Adressen “192.168.2.38
” und “192.168.2.39
”. Die IP-Adresse die auf “38
” endet, darf das freigegebene Verzeichnis lediglich lesen ( ro
→ Read-Only), die IP-Adresse die auf “39
” endet, darf dagegen Lesen und Schreiben (rw
= Read-Write).
Neben der expliziten Angabe von zulässigen Hosts, können wir eine “Wildcard” verwenden, um eine Freigabe für beliebige Hosts zu erzeugen:
Natürlich gibt es neben den gezeigten Optionen noch viele mehr. Alle Optionen können auf den Man-Pages
für export gefunden werden.
Immer wenn Änderungen an der “ç” Datei angewendet werden sollen, müssen wir dafür zunächst den folgenden Befehl ausführen:
Ein Verzeichnis mit NFS einbinden
Um ein freigegebenes Verzeichnis auf einem Remote-Host einzubinden, erstellen wir zunächst über den Terminal ein neues Verzeichnis als Ziel für den Netzwerk-Ordner:
Nun müssen wir nur noch angeben, welche Freigabe auf dem zuvor erstellen Verzeichnis eingebunden werden soll:
In diesem Beispiel binden wir also das Remote-Verzeichnis “/home/test
“ vom Remote-Host mit der IP-Adresse “192.168.2.39
” lokal auf dem Verzeichnis “/home/remote-dir
” ein.
Verzeichnisse zum Systemstart einbinden
Wenn das System nach dem Einbinden eines Verzeichnisses neu gestartet wird, wird die Verbindung zum Remote-Verzeichnis getrennt. Damit das Verzeichnis bei jedem Neustart automatisch eingebunden wird, müssen wir nur eine kleine Änderung vornehmen.
Statt ein Verzeichnis über den Terminal einzubinden, verwenden wir eine weitere Datei: “/etc/fstab
”. Hier können wir analog zu dem zuvor verwendeten Befehl eine neue Zeile einfügen:
Wenn das System das nächste mal startet, wird das Remote-Verzeichnis “/home/test
” vom Host mit der IP-Adresse “192.168.2.39
” automatisch auf dem lokalen Verzeichnis “/home/remote-dir
” eingebunden.
Verbindung zu einem eingebundenen Verzeichnis trennen
Um die Verbindung zu einem eingebundenen Remote-Verzeichnis wieder zu trennen, können wir den Befehl umount verwenden:
In dem obigen Beispiel verwenden wir unser lokales Verzeichnis um anzugeben, zu welchem Remote-Verzeichnis die Verbindung getrennt werden soll.