Inhalte
Zum schnellen nachprogrammieren…
Los Geht’s
Installation
Für die Installation brauchen wir nicht viel. Alles was wir brauchen ist in dem Standard Repository drinnen. Egal ob Ubuntu oder Debian oder Raspbian… ggf. suchen 😉 Wir installieren den NFS Server, ein NFS Client und das Tool rpcbind, das uns das scannen von nfs-shares ermöglicht.
apt-get install nfs-kernel-server nfs-common rpcbind
Autostart einrichten
Per systemd comand, werden wir den NFS Server autostart aktivieren.
systemctl enable rpcbind systemctl enable nfs-server
NFS Server starten
Nun starten wir alle erforderlichen Dienste.
systemctl start rpcbind systemctl start nfs-server systemctl start rpc-statd systemctl start nfs-idmapd
In meinem Beispiel möchte ich gern das Verzeichnis /nfs-server/files mit allen 192.168.10.24/24 Clients teilen.
#erstellen des Share-Ordners mkdir -p /nfs-server/files #Anschließend das Verzeichnis der nogroup zuweisen chown -R nogroup:nogroup /nfs-server/files #oder chmod -R 777 /nfs-server/files
Das veröffentlichen passiert in dem man die /etc/exports
Datei editiert. Wir tragen dort unser Share ein.
# /etc/exports: the access control list for filesystems which may be exported # to NFS clients. See exports(5). # # Example for NFSv2 and NFSv3: # /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check) # # Example for NFSv4: # /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check) # /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check) # /nfs-server/files 192.168.10.24/24(rw,sync,no_subtree_check,no_root_squash)
Zur Erklärung:
Jede Zeile in der Exports Datei ist für ein Share verantwortlich. Ein Share kann auch mehrere Hostnamen bzw. Clientberechtigungen enthalten. Siehe Export Beschreibung. Die Struktur ist immer die gleiche:
/zum/share/verzeichnis IP-Adresse oder Hostname(Berechtigungen)
Erklärung der wichtigsten Berechtigungen:
- rw = Read and Write Erlaubt das Lesen und schreiben in dem Share
- ro = Read Only Schreibgesützter Zugriff. Nur lesenden Zugriff ist erlaubt
- sync = Synchroner Datentransfer
- async = Mehr Schreibleistung zum Gunsten des Datenverlusts.
- no_root_squash = Verweißt alle Schreiboperationen auf den User anonymous zu. Es findet kein matching der Benutzer und Benutzergruppen statt
- root_squash = Verweißt Schreiboperationen zum User Root zu.
Mehr Infos findet ihr in der Ubuntu Dokumentation.
Nun veröffentlichen wir die Shares mit dem exportbefehl exportfs
. Damit Bezwecken wir, dass die Export Datei neu eingelesen wird.
exportfs -ra
Oder den Service neu starten
systemctl restart nfs-server
Das wars. Nun können wir auf der Client Seite den Share mit der Ip Adresse suchen und mounten.
Nützliche Befehle
Mit folgenden Befehlen kann man verschiedene nützliche Operationen durchführen.
#Zeigt alle Shares an exportfs -v
NFS Verzeichnisse auf dem Client suchen
Auf einem Linux System kann man dies mit dem Befehl showmount
und der Ip Adresse des NFS Server tuhen.
showmount -e NFS-SERVER
Hat man das Ziel gefunden kann man dies mit dem mount Befehl in das System einbinden.
Mounten auf Linux Systemen
Dies erledigen wir mit dem sehr mächtigen Programm mount
. Zuvor sollten wir uns noch ein Mountpoint aussuchen in meinem Fall, möchte ich gern unter /mnt/freigabe-namen die Freigabe haben. Ggf. vorhher den freigabe-namen Ordner erstellen.
mount <IP-Adresse>:/pfad/zum/share /mnt/freigabe-namen
Möchte man den Mount dauerhaft im System haben, so fügt man dies in der /tect/fstab
Tabelle hinzu.
<IP-Adresse>:/pfad/zum/share /mnt/freigabe-namen nfs rw 0 0
Auf der Ubuntu Dokumentation wird ganz gut erklärt, welche Parameter gesetzet werden können.
Viel Spaß 🙂