9 Stimmen

NFS-Netzwerkeinbindung: Eigentümer auf bestimmtes Konto setzen

OK, ich bin ernsthaft verwirrt über dieses Zeug, so wirklich anschauliche Antworten würden geschätzt werden, vor allem, wenn sie diese ganze Montage Zeug weniger magisch und mehr vorhersehbar machen.

Ich versuche, mein Drobo-FS NAS mit nfs zu mounten, um eine bessere Leistung als mit cifs zu erzielen.

Auf dem Drobo läuft eine abgespeckte Linux-Distribution.

In /etc/fstab auf dem Client-Rechner (Ubuntu mit IP: 192.168.1.150)

# Mount Drobo
192.168.1.100:/mnt/DroboFS/Shares/public /media/drobonfs nfs rw,soft,proto=tcp,users 0 0

Ich habe unfsd auf dem Drobo installiert und Zugriff über ssh. Dies ist die Exportdatei auf dem Serverrechner (Drobo-FS mit IP 192.168.1.100):

# Allow access for client machine
/mnt/DroboFS/Shares 192.168.1.150(rw,no_root_squash)

Das Mounten funktioniert gut, außer dass die gemounteten Dateien alle Root gehören und die meisten Dateiberechtigungen auf 744 gesetzt sind. Die beim Einhängen auf dem Client angezeigten Dateiberechtigungen stimmen mit den tatsächlichen Berechtigungen auf dem Server überein. Zum Beispiel:

client$ sudo chmod 123 /media/drobonfs/somefile
client$ ls -l /media/drobonfs/somefile
---x-w--wx 1 root root 0 2012-01-04 14:15 /media/drobonfs/somefile

drobo$ ls -l /mnt/DroboFS/Shares/public/somefile
---x-w--wx    1 root     root            0 Jan  4 14:15 /mnt/DroboFS/Shares/public/somefile

Das Schreiben von sudo vor jedem Befehl ist lästig, und ich möchte verstehen, was vor sich geht. Was kann ich also tun, um die Datei auf dem Client-Rechner zu mounten, wobei der Eigentümer/die Gruppe auf mein Konto statt auf Root gesetzt ist?

8voto

Pieter1973 Punkte 81

Wenn eine Freigabe gemountet wird, wird die UserID (UID) des Hostsystems auf die UserID (UID) des Clients abgebildet.

Auf dem Client wird der zugeordnete Benutzer (basierend auf der userID) zum Eigentümer der eingebundenen Freigabe.

Ihr Problem wird dadurch verursacht, dass der Host eine andere UID als der Client verwendet.

Sie können dieses Problem lösen, indem Sie eine /etc/nfs.map-Datei definieren:

/etc/nfs.map

Das sieht dann so aus:

# remote local gid 500 1000 # drobo client uid 500 2003 # drobo client

Wenn Sie also NFS verwenden, müssen Sie sicherstellen, dass die UID/GID der Benutzer auf Host und Client übereinstimmen. Bitte lesen Sie auch den folgenden Artikel: http://www.kernelcrash.com/blog/nfs-uidgid-mapping/2007/09/10/

Eine weitere gute Möglichkeit, dieses Problem zu lösen, ist die Untersuchung der UIDs auf dem Host- und dem Client-System, und zwar mit folgender Methode /etc/passwd Datei auf beiden Systemen.

oder durch Eintippen:

id tom

ändern Sie die UID mit:

usermod -u 10000 tom

Viel Glück!

2voto

Kyle Jones Punkte 5387

Es scheint, dass dies bei Exporten auf dem Drobo funktionieren sollte:

/mnt/DroboFS/Shares 192.168.1.150(rw,all_squash,anonuid=NNN)

donde NNN ist Ihre numerische Benutzerkennung auf dem Client.

-1voto

Adrian Punkte 78

Ändern Sie /etc/exports zu:

/mnt/DroboFS/Shares 192.168.1.150(rw,insecure)

und führen Sie dann auf dem NFS-Server aus:

$ sudo exportfs -a

Wenn Sie nun das Verzeichnis als Nicht-Root-Benutzer auf dem NFS-Client einhängen, wird es mit dem entsprechenden Eigentümer und der entsprechenden Gruppe eingehängt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X