NIS代表网络信息服务。
NIS也称为YP。 YP代表黄页。
NIS是针对数据库集的查找服务。在这种情况下,数据库可以是passwd文件,组文件,主机文件等。它主要用作存放所有用户名和密码(即/ etc / passwd)的中央存储库,并且不同的服务器可以针对该服务器进行身份验证,以用于用户名和密码。
这对于必须管理多个服务器的系统管理员非常有帮助。无需为每台Linux服务器上的用户创建用户帐户,您只需在配置为运行NIS服务器的一台服务器上创建帐户即可。可以将所有其他服务器配置为NIS客户端,它将根据该中央NIS服务器存储库进行身份验证。
这是一个分步教程,介绍了ypserv NIS服务器和客户端的安装和配置。
YPServ代表黄页服务器。
如果已经配置了NIS服务器,而您只是想将Linux服务器连接到现有的NIS服务器,请跳至“Configre NIS Client” section below.
如果要同时安装和配置NIS服务器和客户端,请从下面的第一步开始。
NIS服务器配置
1.验证端口图
Portmap服务器将DARPA端口映射到RPC程序号。对于进行RPC调用以与NIS服务器(这是RPC服务器)进行通信的NIS客户端,应该运行portmapper。
NIS服务器启动时,它将通知端口映射器正在监听的端口。当NIS客户端联系NIS服务器时,它将首先与portmapper核对并获取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发行版的典型安装方法在服务器上安装ypserv(例如:apt-get,yum或up2date等)。
如果您想从源代码安装它,请下载 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是否已向端口映射注册,如下所示。
# 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=thegeekstuff.com
如下所示启动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, 上 e 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 上 all slave server.
生成数据库后,您可以看到在/ var / yp下为您的域创建了一个新目录,如下所示。
# ls -l /var/yp total 44 drwxr-xr-x 2 root root 4096 Oct 8 10:59 thegeekstuff.com 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 没有这样的映射passwd.byname。原因:可以't绑定到服务于该域的服务器
您可能会收到上述错误消息,因为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命令将仅显示一个‘x’ in the passwd file.
#ypcat passwd ramesh:x:401:401::/home/ramesh:/bin/bash john:x:402:402::/home/john:/bin/bash
随时进行更改(更新Makefile或更改数据库)。例如,当您添加新用户或修改现有用户帐户时,应执行以下操作。否则,所做的更改将不会反映到您的任何NIS客户端。
# cd /var/yp # make
我建议您将此添加到 根cron工作 在您的NIS服务器上每15分钟执行一次。这样,你不’您无需担心在您对NIS数据库进行任何更改时就手动运行此操作。
NIS客户端配置
需要在NIS客户端上执行以下步骤。在上面的示例中,我们在名为prod-db的服务器名称上安装了NIS服务器。如果要另一个Linux服务器dev-db使用prod-db上的/ etc / passwd文件进行身份验证,则需要在dev-db服务器(NIS客户端)上执行以下步骤。
6.在客户端上设置域名
验证在此服务器上正确设置了域名。如果没有’返回正确的域名。执行‘域名{您的域}’在服务器上设置域名。
# domainname thegeekstuff.com
domainname命令将临时设置域名。即,如果您重新启动系统,则域名将消失。要使域名永久使用,请更新网络文件并设置NISDOMAIN参数,如下所示。
# cat /etc/sysconfig/network NETWORKING=yes HOSTNAME=dev-db GATEWAY=192.168.1.4 NISDOMAIN=thegeekstuff.com
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 没有这样的映射passwd.byname。原因:可以't绑定到服务于该域的服务器
您可能会收到上述错误消息,因为ypbind可能未在您的系统上运行。只需启动ypbind并验证配置即可。
# service ypbind start # ypcat passwd ramesh:x.:401:401::/home/ramesh:/bin/bash john:x:402:402::/home/john:/bin/bash
如果您喜欢这篇文章,您可能还会喜欢..
![]() |
![]() |
![]() |
![]() |
谢谢你的简短介绍。我一定会从中丢失一些东西。是指NIS服务器将本质上将其自己的/ etc / passwd和/ etc / group的内容提供给网络,还是从运行该服务器的服务器拥有自己的独立数据库?
另外,客户端是否严格限制了NIS中的内容,或者它基本上是针对NIS进行身份验证的“union” of the LIS and what’有自己的密码和组?如果发生冲突怎么办?
最后,为了选择域(以避免冲突)NIS服务器,我希望不要尝试自己接管DNS功能。可以?