Hallo,
ich habe einen Ubuntu-Server 10.04 aufgesetzt und diesen mit LDAP, Kerberos und NFS4 ausgestattet. Ebenso existiert ein Client (Ubuntu Desktop 10.04) der LDAP, Kerberos und auch NFS4 machen soll. Es funktioniert alles, bis auf das "idmappen" der User in NFS4. Es werden nicht alle udis / gruppen aufgelöst. Ein Teil der Namen und Gruppen stimmt, aber ab und zu kommt "nobody" oder "nogroup" vor. Es sind immer wieder unterschiedliche User, also kann es nicht sein, dass nur der ein oder andere User falsch angelegt worden ist. getent passwd liefert immer die richtigen Einträge. ebenso wie getent group (also sowohl die lokalen als auch die LDAP-Einträge zu Users bzw. Gruppen). Das Einloggen als LDAP-User funktioniert, das Kerberosticket wird geholt, auch ist ein home auf einer NFS3-Freigabe möglich. Auch in dieser werden alle User immer richtig aufgelöst (da diese nicht über den idmapd geholt werden). Das einzige Problem ist eben, dass der rpc.idmapd Fehler macht bzw. in den logfiles behauptet, er könne die Namen / uids nicht auflösen. Wie die Tests aber zeigen, ist der Server verfügbar und alle Dienste richtig konfiguriert. Die Auflösung des Domain-Namen in der idmapd.conf klappt ja teilweise. Sprich, es sollte alles funktionieren, aber die Implementierung des idmapd scheint buggy zu sein. Mountet man eine Freigabe über NFS4 und überprüft mit "ll" die Freigabe, so werden manchmal alle User richtig aufgelöst und alle Gruppen ebenso, aber macht man ein umount und dann wieder ein mount, kann sich das schon wieder geändert habe. Gleiches Phänomen tritt auf, wenn man auf den Cache-Timeout wartet, ohne etwas zu ämndern und dann nach ca. 10-15 Minuten z.B. nochmal ein "ll" macht. Auch da können sich user als "nobody" zeigen, die davor aber aufgelöst werden konnten. Die "Workarounds" mit idmapd neustarten usw. haben keinen Erfolg gebracht und sind auch nicht wirklich tauglich im Server-Betrieb. Auf dem Server habe ich das gleiche Setup für nfs4-Mounts ebenfalls eingerichtet, um das Netzwerk als Problem auszuschließen. Auch da ist der Effekt identisch. Starte ich den rpc.idmapd mit vielen "-v" kommt das dabei im Log-File heraus:
Ein Teil des daemon.log-Files:
.... rpc.idmapd[15953]: nfs4_name_to_uid: calling nsswitch->name_to_uid rpc.idmapd[15953]: nss_getpwnam: name 'test@DOMAIN.TEST' domain 'DOMAIN.TEST': resulting localname 'test' rpc.idmapd[15953]: nfs4_name_to_uid: nsswitch->name_to_uid returned 0 rpc.idmapd[15953]: nfs4_name_to_uid: final return value is 0 rpc.idmapd[15953]: Client 39: (user) name "test@DOMAIN.TEST" -> id "2022" .... rpc.idmapd[15953]: nfs4_name_to_uid: calling nsswitch->name_to_uid rpc.idmapd[15953]: nss_getpwnam: name 'blubber@DOMAIN.TEST' domain 'DOMAIN.TEST': resulting localname 'blubber' rpc.idmapd[15953]: nss_getpwnam: name 'blubber' not found in domain 'DOMAIN.TEST' rpc.idmapd[15953]: nfs4_name_to_uid: nsswitch->name_to_uid returned -9 rpc.idmapd[15953]: nfs4_name_to_uid: final return value is -9 rpc.idmapd[15953]: Client 39: (user) name "blubber@DOMAIN.TEST" -> id "65534" ....
Der erste Teil zeigt eine korrekte Übersetzung, der zweite Teil, eine fehlerhafte, beide Anfragen werden zur gleichen Zeit abgearbeitet. Der return-value kann auch mal -22, -2 o.ä. sein.
Für Hilfe, Tips oder Lösungen wäre ich sehr dankbar. (alle update / upgrade sind installiert)