NFSv4 und sec=sys - Username+uid+gid müssen gleich sein
Beim Versuch festzustellen, wieso Method = static, nsswitch in /etc/idmapd.conf nicht funkioniert.
Als erstes mal nfs4_disable_idmapping Parameter auf N gesetzt (defaults: EL7: Y, EL6: N, EL5: nicht verfügbar), damit das idmapping tatsächlich stattfindet. Danach zeigen die Dateien obwohl die User auf Client und Server unterschiedliche UID+GID haben korrekte Werte an.
Irgendwann bin ich darauf gestossen:
...
static: This method works only for translating GSS authenticated names to local names
...
(/usr/share/doc/libnfsidmap-0.25/README)
Ok, geht also nicht mit sec=sys sondern nur mit sec=krb5 und Co. Der Hinweis hätte gerne schon in den idmapd.conf Kommentaren stehen dürfen.
Was dann aber schon sehr verwunderlich war, dass obwohl ls -l anzeigt, dass ich Zugriff habe, dann der Zugriff nicht so funktioniert hat.
Der Ubuntu Bug nfs4+idmap does not map uids correctly when using AUTH_SYS beschreibt wahrscheinlich das Problem. Angezeigt wird es wie erwartet:
Oder noch besser auf sec=krb5 wechseln!
Als erstes mal nfs4_disable_idmapping Parameter auf N gesetzt (defaults: EL7: Y, EL6: N, EL5: nicht verfügbar), damit das idmapping tatsächlich stattfindet. Danach zeigen die Dateien obwohl die User auf Client und Server unterschiedliche UID+GID haben korrekte Werte an.
Irgendwann bin ich darauf gestossen:
...
static: This method works only for translating GSS authenticated names to local names
...
(/usr/share/doc/libnfsidmap-0.25/README)
Ok, geht also nicht mit sec=sys sondern nur mit sec=krb5 und Co. Der Hinweis hätte gerne schon in den idmapd.conf Kommentaren stehen dürfen.
Was dann aber schon sehr verwunderlich war, dass obwohl ls -l anzeigt, dass ich Zugriff habe, dann der Zugriff nicht so funktioniert hat.
Der Ubuntu Bug nfs4+idmap does not map uids correctly when using AUTH_SYS beschreibt wahrscheinlich das Problem. Angezeigt wird es wie erwartet:
- Server schickt User als String, Client löst String auf lokale UID/GID auf
Fazit
Für sec=sys müssen Username, UID und GID auf Client und Server übereinstimmen, wenn man sicherstellen will, dass es für alle funktioniert.Oder noch besser auf sec=krb5 wechseln!
Weitere Notizen
- keyctl list %:.id_resolver zeigt was nfsidmap -l anzeigt
- dies auch: grep id_resolv /proc/keys
- rpm -ql libnfsidmap
- nfs4_disable_idmapping Parameter für das nfs und nfsd Kernel Modul (zählt nur für sec=sys) - bei
- wie wird das nfsidmap Utility effektiv aufgerufen via request-key.conf Konfiguration?
- nfsidmap -v 335650703 uid:test1@local.dns
- nfsidmap -v 168930658 gid:root@local.dns