现在我们将描述和讨论使用 GNU libc 库支持配置 NIS 客户端。
您的第一步应该是告诉 GNU libc NIS 客户端使用哪个服务器来提供 NIS 服务。我们之前提到过,Linux ypbind 允许您配置要使用的 NIS 服务器。默认行为是在本地网络上查询服务器。如果您正在配置的主机可能会从一个域移动到另一个域,例如笔记本电脑,您可以将/etc/yp.conf文件留空,它会在本地网络上查询本地 NIS 服务器,无论它在哪里。
对于大多数主机来说,更安全的配置是在/etc/yp.conf配置文件中设置服务器名称。对于 Winery 网络上的主机,一个非常简单的文件可能如下所示
# yp.conf - YP configuration for GNU libc library. # ypserver vbardolino |
ypserver 语句告诉您的主机使用提供的主机作为本地域的 NIS 服务器。在本例中,我们将 NIS 服务器指定为 vbardolino。当然,与 vbardolino 对应的 IP 地址必须在hosts文件中设置;或者,您可以将 IP 地址本身与 server 参数一起使用。
在示例中显示的形式中,ypserver 命令告诉 ypbind 使用指定的服务器,无论当前的 NIS 域是什么。但是,如果您经常在不同的 NIS 域之间移动您的机器,您可能需要在yp.conf文件中保留多个域的信息。您可以在yp.conf中通过使用 domain 语句指定各种 NIS 域的服务器信息。例如,您可能会将之前的示例文件更改为如下所示,用于笔记本电脑
# yp.conf - YP configuration for GNU libc library. # domain winery server vbardolino domain brewery server vstout |
这使您可以通过在启动时使用 domainname 命令简单地设置所需的 NIS 域,从而在两个域中的任何一个域中启动笔记本电脑。然后,NIS 客户端将使用与当前域相关的任何服务器。
您可能想要使用第三个选项。它涵盖了您不知道在特定域中要使用的服务器的名称或 IP 地址,但仍希望能够在某些域中使用固定服务器的情况。假设我们想坚持在 Winery 域中操作时使用指定的服务器,但在 Brewery 域中时希望探测要使用的服务器。我们将修改我们的yp.conf文件再次使其如下所示
# yp.conf - YP configuration for GNU libc library. # domain winery server vbardolino domain brewery broadcast |
broadcast 关键字告诉 ypbind 使用它为域找到的任何 NIS 服务器。
在创建此基本配置文件并确保它是全局可读之后,您应该运行您的第一个测试以连接到您的服务器。确保选择您的服务器分发的映射,例如hosts.byname,并尝试使用 ypcat 实用程序检索它
# ypcat hosts.byname 172.16.2.2 vbeaujolais.vbrew.com vbeaujolais 172.16.2.3 vbardolino.vbrew.com vbardolino 172.16.1.1 vlager.vbrew.com vlager 172.16.2.1 vlager.vbrew.com vlager 172.16.1.2 vstout.vbrew.com vstout 172.16.1.3 vale.vbrew.com vale 172.16.2.4 vchianti.vbrew.com vchianti |
您获得的输出应该类似于刚刚显示的输出。如果您收到错误消息,内容为Can't bind to server which serves domain,那么要么您设置的 NIS 域名在yp.confyp.conf
# rpcinfo -u serverhost ypserv program 100004 version 1 ready and waiting program 100004 version 2 ready and waiting |