在 nsswitch.conf 中使用

在 nsswitch.conf 中使用

有人在 nsswitch.conf 中遇到过此配置用于 passwd 和 groups 配置的情况吗?我工作的地方有人告诉我,它已被证明可以帮助解决本地和 ldap 中都存在组的情况,而这会导致组成员身份等问题。然而,此配置似乎完全搞乱了 nscd,它会知道组及其所有成员,但不会翻转数据以表明用户是其所有远程组的成员。

最初,在完全可用的环境中,它似乎与 [FOUND=return] 完全相同,而后者无论如何都是阶段之间的隐式默认值。然而,显然 Redhat 的冗长请求导致建议使用该配置。

答案1

在 中[FOUND=return]不存在,因此您将获得默认行为。您可以签入中定义的FOUND函数(在存储库中)。nss_parse_service_listnss/nsswitch.cglibc

作为参考,这种行为是:

  • 成功 -> 返回
  • 未找到 -> 继续
  • 不可用 -> 继续
  • 重试 -> 继续

当你引入时[!NOTFOUND=return],它会移动到:

  • 成功 -> 返回
  • 未找到 -> 继续
  • 不可用 -> 返回
  • 再次尝试 -> 返回

因此,当第一个源因不可用(永久或暂时)而发生故障时,并且只有在这种情况下,您才会停止使用服务。如果后端没有发生故障,则不会有任何区别。还请记住,这样的语句[]只会影响它之前的源和它之后的源之间发生的事情,而不会影响其他源。

如果 Red Hat 认为在尚未完全可用的环境中还有更多功能,您可能需要要求他们解释那到底是什么,并针对 Red Hat Enterprise Linux 打开功能请求以在其文档中正确定义语义。

nsswitch.conf(5)我的经验而言(包括在 Red Hat 的技术支持工程:),基本上就是这样了。

相关内容