13.9. 使用 NIS 和影子密码支持

将 NIS 与影子密码文件结合使用在某种程度上是有问题的。首先,我们有个坏消息:使用 NIS 会破坏影子密码的目标。这个影子密码方案旨在防止非 root 用户访问加密形式的登录密码。使用 NIS 共享影子数据必然会使加密密码对任何可以监听网络上 NIS 服务器回复的用户可用。强制用户选择“好”密码的策略,可以说比在 NIS 环境中尝试影子密码更好。让我们快速看一下如何操作,如果您决定继续前进。

在 libc5 中,没有真正共享影子使用 NIS 的数据的解决方案。通过 NIS 分发密码和用户信息的唯一方法是通过标准的passwd.*映射。如果您安装了影子密码,共享它们最简单的方法是从passwd文件生成一个合适的/etc/shadow使用像 pwuncov 这样的工具,并从该文件创建 NIS 映射。

当然,同时使用 NIS 和影子密码需要一些技巧,例如,通过在每个主机上安装一个/etc/shadow网络中的每个主机上的文件,同时通过 NIS 分发用户信息。然而,这种技巧非常粗糙,并且违背了 NIS 的目标,即简化系统管理。

GNU libc 库 (libc6) 中的 NIS 支持为影子密码数据库提供了支持。它没有为使您的密码可访问提供任何真正的解决方案,但它确实简化了您想要将 NIS 与影子密码一起使用的环境中的密码管理。要使用它,您必须创建一个shadow.byname数据库并将以下行添加到您的/etc/nsswitch.conf
# Shadow password support
shadow:         compat

如果您将影子密码与 NIS 一起使用,您必须尝试通过限制对您的 NIS 数据库的访问来维护一些安全性。请参阅本章前面的 第 13.5 节”。