Ich versuche, einige NFS-Freigaben für mein Heimnetzwerk zu erstellen, damit ich mein NAS einfacher verwalten kann. Ich verwende derzeit Samba für den Haushalt, aber NFS ist für mich schneller, da ich Ubuntu verwende (alle anderen, außer dem NAS, verwenden Windows).
Ich möchte einige NFS-Freigaben erstellen, die für alle außer meinem Computer schreibgeschützt sind. Die NFS-Freigaben funktionieren einwandfrei, d. h. ich kann sie auf meinem Computer mounten und die Ordner durchsuchen, aber ich bin gezwungen, sie schreibgeschützt zu machen, was frustrierend ist, da ich in meiner Konfiguration/Export angegeben habe, dass meine Computer schreibgeschützt sind.
Meine /etc/exports-Datei sieht folgendermaßen aus (als Beispiel einer Zeile – es gibt mehrere davon mit demselben Ergebnis):
/mnt/TVShows matt-pc.*(rw,sync,no_root_squash,no_subtree_check) 192.168.1.0/25(ro,sync,no_root_squash,no_subtree_check)
matt-pc.1 und matt-pc.2 sind beide in der Hosts-Datei des NAS definiert. Aber unabhängig davon funktioniert die harte Kodierung der IPs auch nicht.
Das hier funktioniert auch nicht:
/mnt/TVShows matt-pc.*(rw,sync,no_root_squash,no_subtree_check) *(ro,sync,no_root_squash,no_subtree_check)
Ich kann immer noch nur schreibgeschützt mounten.
Die Laufwerke sind auf dem NAS zum Lesen/Schreiben gemountet und meine Samba-Freigabeeinstellungen funktionieren einwandfrei (ich kann die Anmeldung mit meinem Benutzerkonto auf dem NAS erzwingen und Dateien lesen und schreiben).
Wenn ich die Freigaben wie folgt formatiere:
/mnt/TVShows matt-pc.*(rw,sync,no_root_squash,no_subtree_check)
Ich erhalte nur Berechtigungsfehler, wenn ich versuche, die Bereitstellung auf dem Clientcomputer (meinem Computer) durchzuführen.
So mounte ich es auf meinem Client-Rechner:
nas.local:/mnt/TVShows /mnt/NFS/TVShows nfs auto,noatime,nolock,bg,nfsvers=4,intr,tcp,actimeo=1800 0 0
Kann ich damit arbeiten?
Antwort1
Um von /mnt/TVShows
und in alle anderen zu exportieren, können Sie Folgendes in „/etc/exports“ schreiben:rw
nas
matt-pc
ro
#
/mnt/TVShows matt-pc(rw,no_subtree_check) 192.168.1.0/24(ro)
Beachten Sie, dass die Reihenfolge wichtig ist. Der erste Computername/die erste IP/das erste Netzwerk, das verwendet wird, wenn auf einen Computer exportiert wird. Stellen Sie also den spezifischsten Computer an die erste Stelle und den allgemeinsten ans Ende. Beenden Sie nicht mit einem Catch-All, das zu viele Rechte erteilt.
Denken Sie auch daran, dass jeder Optionssatz dem nächsten inhärent ist, Sie müssen also nur beim ersten spezifisch sein. Der Rest sind nur Änderungen gegenüber vorherigen Einstellungen. Vermeiden Sie auch festgelegte Meinungen, die Sie nicht benötigen. (Und lesen Sie immer relevante man
(1) Seiten und Dokumentationen in /usr/share/doc/"package name"/
)
Überprüfen Sie auch, ob die von Ihnen verwendeten Namen richtig aufgelöst werden. Verwenden Sie dazu den getent
Befehl (1). So:
$ getent hosts matt-pc
Und wie das funktioniert, hängt von resolv.conf
und ab /etc/hosts
(oder eigentlich vom Inhalt von /etc/nsswitch.conf
).
Zum Mounten gehen Sie von jeder Maschine aus folgendermaßen vor:
/etc/fstab
# ro, that is this line in all but matt-pc
nas.local:/mnt/TVShows /mnt/NFS/TVShows nfs auto,ro,noatime,nolock,bg,nfsvers=4,intr,tcp 0 0
# rw, that is this line in only matt-pc
nas:/mnt/TVShows /mnt/NFS/TVShows nfs auto,rw,noatime,nfsvers=4,tcp 0 0
Beachten Sie jedoch, dass Sie nicht mehr Argumente verwenden, als Sie wirklich benötigen.
(Ja, ich bevorzuge Festplatten auf Servern, die unter gemountet sind /srv/
, da dies für Serverressourcen und /mnt/
eher für temporäre Mounts gedacht ist. Normalerweise habe ich /srv/web/
, /srv/files/music/
, /srv/files/video
usw. Dadurch ist es einfacher, Backups zu erstellen.)