# NFS4: idmap funktioniert nur in eine Richtung

## Orvas

Hallo zusammen,

ich habe ein Problem beim Abbilden der Benutzernamen per idmap bei NFS in Version 4. Vereinfacht dargestellt gibt es auf dem Server zwei Benutzernamen:

Alice mit der UID 1000 und

Bob mit der UID 1001.

An diesem Server hängen zwei Clients mit je einem Benutzer:

Client1 mit Benutzer Alice (UID 1000) und

Client2 mit Benutzer Bob (UID 1000).

Idmapd ist eingerichtet (Version 0.21-r1 und auch 0.24 getestet) mit der gleichen Domäne und nsswitch als translation method, also in Standardkonfiguration. Beim Anzeigen des Verzeichnisinhalts einer eingebundenen NFS-Freigabe und auch beim Lesen von Dateien funktioniert das Mapping einwandfrei, d.h. Client1 sieht Alice' Dateien mit dem korrekten Besitzer und Bobs Dateien gehören nobody. Bei Client2 entsprechend umgekehrt.

Bei einem Schreibzugriff auf diese Freigabe wird jedoch kein Mapping mehr durchgeführt, sondern mit der ID des Clientbenutzers geschrieben. Wenn also im Beispiel der Benutzer Bob auf Client2 eine Datei schreibt, gehört sie danach auf dem Server Benutzer Alice, da beide (jeweils lokal) die UID 1000 haben. Folglich kann Bob auf Client2 Alice' Dateien schreiben, jedoch nicht seine eigenen. Diese werden zwar ihm gehörend angezeigt, bei einem Schreibzugriff hat er jedoch keinen Zugriff, da die lokale UID 1000 ungleich der Server-UID 1001 ist.

Für diese Problem habe ich bisher weder eine Erklärung noch eine Lösung gefunden. Anstelle von einem Gentoo-Server und -Client habe ich auch (virtuell) jeweils Ubuntu als Server und Client eingesetzt, jedoch mit exakt dem selben Ergebnis. Liegt hier ein Denkfehler meinerseits vor?

Auf jeden Fall schon einmal vielen Dank für die Hilfe

Orvas

----------

## boospy

Ja, ich kenn die Schwierigkeit. Fakt ist das Jede UserID am Server und am Client absolut gleich sein muss, sonst funzt das nicht. Nun gut es gibt da noch das statische Mapping, aber das würd ich nicht empfehlen. Richtiger weise arbeitet man dann mit Usergruppen, und ACLs, aber das Problem die ACLs für NFS4 tun nicht so wie sie sollen. Egal, schau mal das die IDs gleich sind, und dann brauchst auch in der /etc/idmap.conf am server nix als die Domäne eintragen. Dann geht das schon mal per User.

lg

boospy

----------

## Orvas

Hallo boospy,

danke für die Antwort. Mir ist jedoch nicht klar, welchen Sinn der Idmapper überhaupt hat, wenn dieser zwar Benutzer anhand des Namens auflöst, dafür allerdings noch immer die gleichen IDs auf dem Server und dem Client benötigt (vor allem, weil es in eine Richtung ja auch ohne diese Übereinstimmung funktioniert). Nun ja, mit wird wohl nichts anderes übrig bleiben, als die IDs anzugleichen. Dabei habe ich gerade dies als Vorteil von NFS4 gesehen, was anscheinend ein Irrtum war.

Gruß

Orvas

----------

## boospy

Sollte wohl so funktionieren, aber irgendwie tut es das nicht, für mich liegt der Vorteil im Moment daran das man nur den Share wissen muss und nicht den ganzen Pfad für die Clientanbindung, und wenn man mit NFS4 verbunden ist, und der Server mal nicht mehr erreichbar sein sollte, hängt sich nicht gleich alles auf und man kann noch schön disconnecten, nicht so wie bei NFS3 das gleich alles steht. In der Clientzeile steht bei mir nicht mehr wie:

```

builder.tux.local:/packages  /usr/portage/packages   nfs4    rw    0 0
```

lg

boospy

----------

