Linux 自定义 NSS 模块,调用 `_nss_SERVICE_getspnam_r` 但未调用 `_nss_SERVICE_getpwnam_r`

Linux 自定义 NSS 模块,调用 `_nss_SERVICE_getspnam_r` 但未调用 `_nss_SERVICE_getpwnam_r`

我正在创建一个自定义 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不是吗?这个问题可能是什么原因造成的?

答案1

nscd 妨碍了。它还会缓存负面调用。

相关内容