![在 nsswitch.conf 中使用](https://linux22.com/image/555515/%E5%9C%A8%20nsswitch.conf%20%E4%B8%AD%E4%BD%BF%E7%94%A8%20.png)
有人在 nsswitch.conf 中遇到过此配置用于 passwd 和 groups 配置的情况吗?我工作的地方有人告诉我,它已被证明可以帮助解决本地和 ldap 中都存在组的情况,而这会导致组成员身份等问题。然而,此配置似乎完全搞乱了 nscd,它会知道组及其所有成员,但不会翻转数据以表明用户是其所有远程组的成员。
最初,在完全可用的环境中,它似乎与 [FOUND=return] 完全相同,而后者无论如何都是阶段之间的隐式默认值。然而,显然 Redhat 的冗长请求导致建议使用该配置。
答案1
在 中[FOUND=return]
不存在,因此您将获得默认行为。您可以签入中定义的FOUND
函数(在存储库中)。nss_parse_service_list
nss/nsswitch.c
glibc
作为参考,这种行为是:
- 成功 -> 返回
- 未找到 -> 继续
- 不可用 -> 继续
- 重试 -> 继续
当你引入时[!NOTFOUND=return]
,它会移动到:
- 成功 -> 返回
- 未找到 -> 继续
- 不可用 -> 返回
- 再次尝试 -> 返回
因此,当第一个源因不可用(永久或暂时)而发生故障时,并且只有在这种情况下,您才会停止使用服务。如果后端没有发生故障,则不会有任何区别。还请记住,这样的语句[]
只会影响它之前的源和它之后的源之间发生的事情,而不会影响其他源。
如果 Red Hat 认为在尚未完全可用的环境中还有更多功能,您可能需要要求他们解释那到底是什么,并针对 Red Hat Enterprise Linux 打开功能请求以在其文档中正确定义语义。
就nsswitch.conf(5)
我的经验而言(包括在 Red Hat 的技术支持工程:),基本上就是这样了。