我正在创建一个自定义 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 妨碍了。它还会缓存负面调用。