设置和配置 YPServ Linux NIS 服务器和客户端
NIS 代表网络信息服务。
NIS 也称为 YP。YP 代表黄页。
NIS 是一组数据库的查找服务。这种情况下的数据库可以是 passwd 文件、组文件、hosts 文件等。这主要用作保存所有用户名和密码的中央存储库(即 /etc/passwd),不同的服务器可以针对此服务器进行身份验证用户名和密码。
这对于必须管理多台服务器的系统管理员非常有帮助。无需在每台 Linux 服务器上为您的用户创建用户帐户,您只需在配置为运行 NIS 服务器的一台服务器上创建帐户即可。所有其他服务器都可以配置为 NIS 客户端,它将针对这个中央 NIS 服务器存储库进行身份验证。
这是一个分步教程,解释了 ypserv NIS 服务器和客户端的安装和配置。
YPServ 代表黄页服务器。
如果已配置 NIS 服务器,并且您只是尝试将 Linux 服务器连接到现有 NIS 服务器,请跳至下面的“配置 NIS 客户端”部分。
如果您要安装和配置 NIS 服务器和客户端,请从下面的第 1 步开始。
NIS 服务器配置
1.验证端口映射
端口映射服务器将 DARPA 端口映射到 RPC 程序号。对于发出 RPC 调用以与 NIS 服务器(即 RPC 服务器)对话的 NIS 客户端,端口映射器应该正在运行。
当 NIS 服务器启动时,它会通知端口映射器它正在侦听的端口。当 NIS 客户端联系 NIS 服务器时,它将首先检查端口映射器并获取 NIS 服务器正在运行的端口号,并将 RPC 调用发送到该端口号。
在大多数 Linux 发行版上,portmap 将默认运行。确保它正在运行,并配置为在系统重新启动时启动。
# ps -ef | grep -i portmap
rpc 3624 1 0 Feb23 ? 00:00:00 portmap
root 16908 8658 0 10:35 pts/0 00:00:00 grep -i portmap
# chkconfig --list | grep portmap
portmap 0:off 1:off 2:off 3:on 4:on 5:on 6:off
2. 安装 YPServ
使用您各自 Linux 发行版的典型安装方法(例如:apt-get、yum 或 up2date 等)在您的服务器上安装 ypserv。
如果您想从源代码安装它,请下载ypserv 源代码。
在 redhat 系统上,从安装 CD 中识别 ypserv RPM 并使用 rpm 如下所示进行安装。
# rpm -ivh ypserv-2.19-5.el5.i386.rpm
Preparing... ########################################### [100%]
1:ypserv ########################################### [100%]
ypserv 将安装在 /usr/sbin/ypserv 下
# whereis ypserv
ypserv:/usr/sbin/ypserv /etc/ypserv.conf /usr/share/man/man8/ypserv.8.gz
3.启动ypserv
检查 ypserv 是否已注册到 portmap,如下所示。
# rpcinfo -u localhost ypserv
rpcinfo: RPC: Program not registered
program 100004 is not available
上面的输出表明 ypserv 未安装,或者 ypserv 已安装但尚未启动。以下快速检查表明 ypserv 尚未启动。
# chkconfig --list | grep yp
ypbind 0:off 1:off 2:off 3:off 4:off 5:off 6:off
yppasswdd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
ypserv 0:off 1:off 2:off 3:off 4:off 5:off 6:off
ypxfrd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
# service ypserv status
ypserv is stopped
在 /etc/sysconfig/network 文件中设置 NISDOMAIN,如下所示。
# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=prod-db
GATEWAY=192.168.1.1
NISDOMAIN=hgst.com.cn
如下所示启动 ypserv。
# service ypserv start
Setting NIS domain name thegeekstuff.com: [ OK ]
Starting YP server services: [ OK ]
/etc/ypserv.conf 文件中设置了一些 NIS 服务器配置参数。但是,您不需要修改此文件中的默认值。
4.生成NIS数据库
安装并启动 ypserv 后,就可以生成 NIS 数据库了。所有 NIS 数据库都存储在 /var/yp 目录下。在生成数据库之前,您不会在 /var/yp 下看到您的域名目录。
# ls -l /var/yp
total 36
drwxr-xr-x 2 root root 4096 May 18 2010 binding
-rw-r--r-- 1 root root 16669 Oct 31 2008 Makefile
-rw-r--r-- 1 root root 185 Jun 6 2007 nicknames
使用 ypinit 程序生成 NIS 数据库,如下所示。您只需输入 NIS 服务器的主机名即可生成数据库。
# /usr/lib/yp/ypinit -m
Please continue to add the names for the other hosts, one
per line. When you are done with the list, type a .
next host to add: prod-db
next host to add:
The current list of NIS servers looks like this: prod-db
Is this correct? [y/n: y] y
We need a few minutes to build the databases...
Building /var/yp/thegeekstuff.com/ypservers...
Running /var/yp/Makefile...
gmake[1]: Entering directory `/var/yp/thegeekstuff.com'
Updating passwd.byname...
Updating passwd.byuid...
Updating group.byname...
Updating group.bygid...
Updating hosts.byname...
Updating hosts.byaddr...
...
gmake[1]: Leaving directory `/var/yp/thegeekstuff.com'
prod-db has been set up as a NIS master server.
Now you can run ypinit -s prod-db on all slave server.
生成数据库后,您可以看到在 /var/yp 下为您的域创建了一个新目录,如下所示。
# ls -l /var/yp
total 44
drwxr-xr-x 2 root root 4096 Oct 8 10:59 hgst.com.cn
drwxr-xr-x 2 root root 4096 May 18 2010 binding
-rw-r--r-- 1 root root 16669 Oct 31 2008 Makefile
-rw-r--r-- 1 root root 185 Jun 6 2007 nicknames
-rw-r--r-- 1 root root 10 Aug 31 10:58 ypservers
/var/yp/ypservers 将包含您的 NIS 服务器主机名的名称。
# cat /var/yp/ypservers
prod-db
5.验证安装
通过检查是否可以使用 ypcat NIS 客户端程序访问 passwd 文件来验证 NIS 服务器安装。
# ypcat passwd
No such map passwd.byname. Reason: Can't bind to server which serves this domain
您可能会收到上述错误消息,因为 ypbind 可能未在您的系统上运行。只需启动 ypbind 并验证配置。
# service ypbind start
# ypcat passwd
ramesh:R7EFEGJ1mxRGwVLVC.:401:401::/home/ramesh:/bin/bash
john:QtlRW$Fx.uZvD:402:402::/home/john:/bin/bash
如果您不想在 ypcat passwd 输出中显示加密的 passwd 字段,请在 /var/yp/Makefile 中将 MERGE_PASSWD 设置为 false,如下所示。
# vi / var / yp / Makefile
MERGE_PASSWD = false
完成上述操作后,ypcat passwd 命令只会在 passwd 文件中显示一个“x”。
# ypcat passwd
ramesh:x:401:401::/home/ramesh:/bin/bash
john:x:402:402::/home/john:/bin/bash
任何时候进行更改(更新 Makefile 或更改数据库)。例如,当您添加新用户或修改现有用户帐户时,您应该执行以下操作。没有这个,更改将不会反映到您的任何 NIS 客户端。
# cd /var/yp
# make
我建议您将其添加到 NIS 服务器上的根 cron 作业中,以每 15 分钟执行一次。这样,您不必担心在对 NIS 数据库进行一些更改时手动运行它。
NIS 客户端配置
需要在 NIS 客户端上执行以下步骤。在上面的示例中,我们在名为 prod-db 的服务器名上安装了 NIS 服务器。如果您想要另一个 Linux 服务器 dev-db,要使用 prod-db 上的 /etc/passwd 文件进行身份验证,您需要在 dev-db 服务器(NIS 客户端)上执行以下步骤。
6.在客户端设置域名
验证此服务器上的域名设置是否正确。如果这没有返回正确的域名。执行 'domainname {your-domain}' 在服务器上设置域名。
# domainname
hgst.com.cn
domainname 命令将临时设置域名。即,如果您重新启动系统,域名将消失。要使域名永久化,请更新网络文件并设置 NISDOMAIN 参数,如下所示。
# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=dev-db
GATEWAY=192.168.1.4
NISDOMAIN=hgst.com.cn
7.在客户端设置NIS服务器名称
将以下行添加到 /etc/yp.conf 文件。这指示 NIS 客户端 NIS 服务器是 prod-db。除了下面的 prod-db,您还可以提供 prod-db 服务器的 IP 地址。
# vi /etc/yp.conf
domain thegeekstuff.com server prod-db
8.在客户端启动ypbind
ypbind 是一个NIS 绑定程序。这将为您的 NIS 域搜索 NIS 服务器并维护 NIS 绑定信息。
确保 ypbind 已启动并在 NIS 客户端服务器上运行。大多数 Linux 发行版已经安装了 ypbind。如果它没有运行,请启动它。
# ps -ef | grep ypbind
# service ypbind start
通过检查是否可以使用 ypcat NIS 客户端程序访问 passwd 文件来验证 NIS 服务器安装。
# ypcat passwd
No such map passwd.byname. Reason: Can't bind to server which serves this domain
您可能会收到上述错误消息,因为 ypbind 可能未在您的系统上运行。只需启动 ypbind 并验证配置。
# service ypbind start
# ypcat passwd
ramesh:x.:401:401::/home/ramesh:/bin/bash
john:x:402:402::/home/john:/bin/bash
- 点赞
- 收藏
- 关注作者
评论(0)