NFS4 mit Mapping der User- und GruppenIDs

winequarter

winequarter

Jungspund
Hallo!

Ich hab jetzt schon eine halbe Ewigkeit herumprobiert und komm einfach auf keinen grünen Zweig. Folgendes Setup:
Rechner A (=NFS-Server): IP 10.0.0.1, Name "servus" (wird vom lokalen "bind" so aufgelöst), Benutzer daniel hat die uid 1000, Gruppe daniel die gid 1000. System ist Debian Squeeze
Rechner B (=NFS-Client): IP 10.0.0.4, Name "xss" (ebenfalls dem "bind" bekannt), Benutzer daniel hat die uid 1007, Gruppe users die gid 100. System ist OpenSuSE 12.2

Das Mounten funktioniert wunderbar, auf das share kann lesend zugegriffen werden. Als Root (natürlich mit der Option "no_root_squash") passt auch der schreibende Zugriff auf die Freigabe.
Wenn ich aber am Client als Benutzer "daniel" angemeldet bin und in die NFS-Freigabe schreibe, dann stimmt das Mapping einfach nicht. Erstellte Dateien erscheinen am Server mit der uid 1007 - dementsprechend kann nur in ein Verzeichnis geschrieben werden, das world-writeable ist.

idmapd läuft auf beiden Rechnern. Allerdings hab ich keine brauchbare Dokumentation gefunden, wie die Konfiguration des Dienstes auf Server/Client aussehen soll (bzw. wie der Dienst überhaupt verwendet wird) - ich seh nur im Logfile, dass er überhaupt verwendet wird.
Am liebsten wär mir also ein statisches Mapping von Benutzer und Gruppen zwischen den beiden Parteien. Hat hier jemand einen Tipp für die Konfiguration von idmapd parat?
 
Welchen Namen die uid hat, ist dem Kernel sicherlich egal. Wenn Du auf Rechner B mit der uid 1007 angemeldet bist, hinterlaesst Du auch Dateien mit dieser uid. Dass es auf dem Server einen user mit zufaellig dem gleichen Namen gibt, hat nichts mit NFS zu tun.
Fuer ein kleines Netzwerk ist es wohl am einfachsten, auf beiden Rechnern dem User 'daniel' dieselbe uid:gid zu geben. Bei groesseren Nutzern ist dann wohl eine zentrale Nutzerverwaltung angemessener (nis ist einfach und relativ unsicher (fuer ein kleines Netzwerk wahrscheinlich nicht so kritisch), ldap m.E. komplizierter, gilt aber als sicherer, v.a. in Verbindung mit kerberos).

So, nachdem ich das jetzt alles geschrieben habe, bin ich auf diesen link gestossen, der Deinen Eindruck der Funktionsweise von idmapd bestaetigt. Das kann aber nicht einfach so funktionieren, Du wirst am Server (oder evtl. auch dem Client) in idmapd.conf eingeben muessen, welche _NAMEN_ auf die ID am Server uebersetzt werden muessen (s. ansatzweise man idmapd.conf unter 'static' . Sonst koennten das ja Hinz und Kunz machen.
 
Welchen Namen die uid hat, ist dem Kernel sicherlich egal. Wenn Du auf Rechner B mit der uid 1007 angemeldet bist, hinterlaesst Du auch Dateien mit dieser uid. Dass es auf dem Server einen user mit zufaellig dem gleichen Namen gibt, hat nichts mit NFS zu tun.
Das hätte ich mit NFS4 anders verstanden. Dort werden ja im Gegensatz zu NFS3 nicht die UIDs hin und hergeschickt, sondern die Benutzernamen.
Blauäugig stell ich mir das so vor:
Am Client schreibt der Benutzer A eine Datei ins (sozusagen virtuelle) Dateisystem. Der NFS-Client schickt dem NFS-Server den Befehl zum Anlegen der Datei mit dem Benutzer A. Der Server weiß (durch das statische Mapping), dass der Benutzer A am Client am Server der Benutzer B ist und schreibt die Datei mit dem Benutzer B als Eigentümer in sein FS. Am Weg zurück (z.B. beim Lesen) natürlich analog bzw. umgekehrt.

Fuer ein kleines Netzwerk ist es wohl am einfachsten, auf beiden Rechnern dem User 'daniel' dieselbe uid:gid zu geben. Bei groesseren Nutzern ist dann wohl eine zentrale Nutzerverwaltung angemessener (nis ist einfach und relativ unsicher (fuer ein kleines Netzwerk wahrscheinlich nicht so kritisch), ldap m.E. komplizierter, gilt aber als sicherer, v.a. in Verbindung mit kerberos).
Ja, das hab ich mir auch schon überlegt - nicht zuletzt weil man immer wieder darauf hingewiesen wird bzw. man das so in den Infos immer wieder findet.
Aber ich wollt mir eigentlich den Aufwand einer zentralen Benutzerverwaltung ersparen. Außerdem bin ich der Meinung, dass das ein ganz üblicher Fall ist und doch irgendwie recht einfach möglich sein soll. Wenn ich z.B. mit dem Firmenlaptop im Heimnetz hänge, kann ich auch nicht davon ausgehen, dass Benutzer- und GruppenIDs mit dem Server übereinstimmen...

So, nachdem ich das jetzt alles geschrieben habe, bin ich auf diesen link gestossen, der Deinen Eindruck der Funktionsweise von idmapd bestaetigt. Das kann aber nicht einfach so funktionieren, Du wirst am Server (oder evtl. auch dem Client) in idmapd.conf eingeben muessen, welche _NAMEN_ auf die ID am Server uebersetzt werden muessen (s. ansatzweise man idmapd.conf unter 'static' . Sonst koennten das ja Hinz und Kunz machen.
Danke für die Links. Bin im Moment nicht im "problematischen" Netz, werd mir das aber wenn möglich gleich durchsehen. Die Man-Seite zu imapd.conf sagt mir ehrlich gesagt nicht sehr viel. Vor allem wird dort nur das User-Mapping beschrieben - von Mappings von Gruppen ist hier nirgends die Rede :(
Ich werd mich wohl etwas genauer in die Sache einlesen müssen (z.B. was ist "GSS").
 
Hallo

Schau doch mal nach, ob du tatsächlich nfs4 benutzt. Was sagt denn die Ausgabe des Kommandos 'mount' auf dem Client?
Da sollte auf jeden Fall 'nfs4' als Dateisystem angegeben werden.

Grüße
Bohrmaschine
 
Laueft denn der idmapd auf beiden Rechnern, und wie sieht /etc/idmapd.conf auf beiden Rechnern aus? Passen die 'Domain's?
 

Ähnliche Themen

LibreOffice keine Schreibberechtigung bei NFS-Freigabe

Samba 4 ändert Besitzer auf root

Samba 4 Gast Zugang unter Ubuntu funktioniert nicht

Windows clients können nicht mehr auf lange laufendes System zugreifen

Von WinAD auf Sambaserver zugreifen funktioniert nicht share nichtmal sichtbar

Zurück
Oben