首页 > 解决方案 > 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成功调用。我把log打印出来确保只要glibc进入函数,就会有trace,但是还是不能_nss_SERVICE_getpwnam_r正常工作。必须有其他一些覆盖nssswitch.conf的配置不存在吗?这个问题的原因可能是什么?

标签: linuxpasswdetcpasswdnameservice

解决方案


是 nscd 挡道了。它还缓存否定调用。


推荐阅读