Я создаю собственный модуль NSS. Мне удалось заставить его работать на моем локальном Redhat 7.3, настроенном nsswitch.conf
правильно
passwd: files SERVICE
shadow: files SERVICE
и подтвердил, что оба _nss_SERVICE_getpwnam_r
и _nss_SERVICE_getspnam_r
вызываются с помощью:
getenv passwd username
getenv shadow username
Но после того, как я скомпилировал и установил его на другой компьютер, тоже RedHat 7.3, только _nss_SERVICE_getspnam_r
был успешно вызван. Я распечатываю логи, чтобы убедиться, что пока glibc входит в функцию, след будет, но все равно не получится _nss_SERVICE_getpwnam_r
работать правильно. Должна быть какая-то другая конфигурация, которая отменяет nssswitch.conf
там нет? В чем может быть причина этой проблемы?
Мешал nscd. Он также кэширует отрицательные вызовы.