通常我们都会建议,一部 Linux 主机的功能越简单越好,也就是说,一部 Linux 就专门进行一项服务。这样有许

多的好处,这包含功能简单所以系统资源得以完整运用,并且在发生***或者是系统产生状况的时候,也比较容易

追查问题所在。因此,一个公司内部常常会有好几部 Linux 主机,有的专门负责 WWW 、有的专门负责 Mail 、

有的专门负责 SAMBA 等等的服务。

不过,这样虽然有分散风险、容易追踪问题的好处,但是,由于是同一个公司内的多部主机,所以事实上所有

的 Linux 主机的帐号与密码都是一样的!那如果公司里面有 100 人的话, 我们就需要针对这么多部的主机去设

定帐号密码。而且,如果未来还有新进员工,那么就设定密码就会使系统管理员抓狂。

这个时候,让我们换一个角度来思考:如果我设计了一部专门管理帐号与密码的主机,而其他的 Linux 主机当

有客户端要登入的时候,就必须要到这部管理密码的主机来查寻使用者的帐号与密码, 如此一来,我要管理所有的

Linux 主机的帐号与密码,只要到那部主要主机上面去进行设定即可! 这就是 Network Information Service,

NIS 主机的主要功能。

事实上,Network Information Service 最早应该是称为 Sun Yellow Pages (简称 yp),也就是 Sun 这家

公司出的一个名为 Yellow Pages 的服务器软件,请注意, NIS 与 YP 是一模一样的。这个 Yellow Pages 名字

取的真是好!怎么说呢?知道黄页 (Yellow Pages) 是什么吗?就是我们家里的电话簿,今天如果你要查寻一家厂

商的电话号码,通常就是直接去查黄页上面的记录来取得电话号码。而这个 NIS 也一样,当使用者要登入时,

Linux 系统就会到 NIS 主机上面去找寻这个使用的帐号与密码信息来加以比对, 以提供使用者登入的验证。 

那么 NIS 主机提供了哪些信息?还记得帐号与密码放置在哪里吗?NIS 就是提供这些资料。 主要有下面这些

基本的资料提供给有登入需求的主机:

/etc/passwd

提供使用者帐号、UID、GID、家目录所在、Shell 等等 

/etc/group

提供群组资料以及 GID 的对应,还有该群组的加入人员

/etc/hosts

主机名称与IP的对应,常用于 private IP 的主机名称对应

/etc/services

每一种服务 (daemons) 所对应的端口 (port number) 

/etc/protocols

基础的TCP/IP协议,如 TCP, UDP, ICMP等

/etc/netgroup

网络群组的定义与使用 (NIS 可能会需要)

/etc/rpc

每种 RPC 服务器所对应的程序号码

/var/yp/ypservers

NIS 服务器所提供的资料文件 

至少可以提供上述这些功能,当然,你也可以自行定义需要哪些资料文件。

nis server  192.168.1.2

1)、nis server所需要的安装包

  • yp-tools :提供 NIS 相关的查询指令功能
  • ypbind   :提供 NIS Client 端的设定套件
  • ypserv   :提供 NIS Server 端的设定套件
  • portmap  :就是 RPC 一定需要的资料

     

    系统如果是centos 可以使用yum -qa | grep ^yp查看当前系统是否已经装以上软件包,如果没用,使用yum

    install -y yp-tools ypbind ypserv portmap进行安装

     

    2)、nis server的配置与启动

     

    [root@nis]# nisdomainname nis-wb   # nis-wb 为nis域名

     

    如果要让系统启时就启用这个nis域名,直接修改/etc/rc.local文件

     

    [root@nis]# vi /etc/rc.local

    nisdomainname nis-wb

     

    3)、设置nis域

     

    [root@nis]# vi /etc/sysconfig/network

    NISDOMAIN=nis-wb

     

    4)、设置ypserv.conf 配置文件

     

    [root@nis]vi /etc/ypserv.conf

     

    # Host       : Domain  : Map                     : Security


    # *           : *          : passwd.byname     : port

    # *           : *          : passwd.byuid        : port
      *            : *          :  *                       : none   #加入这行

    充许访问的IP地址

    域名

    可用资料库名称:就是由 NIS 制作出來的资料库名称

    安全限制

    5)、设置主机名

    vi /etc/hosts

    192.168.1.2     master.nis-wb

    192.168.1.3     slave.nis-wb

     

    6)、启动所有相关服务

     

    [root@nis]# /etc/init.d/portmap start

    [root@nis]# /etc/init.d/ypserv start

    [root@nis]# /etc/init.d/yppasswdd start

     

    7)、栓查启动是否启动成功

     

    [root@nis]# rpcinfo -p localhost

         program vers proto     port

            100000        2     tcp        111    portmapper

            100000        2     udp        111    portmapper

            100004        2     udp        942    ypserv

            100004        1     udp        942    ypserv

            100004        2     tcp        945    ypserv

            100004        1     tcp        945    ypserv

            100009        1     udp        950    yppasswdd

    [root@nis]# rpcinfo -u localhost ypserv

    program 100004 version 1 ready and waiting

    program 100004 version 2 ready and waiting

     

    8)、建立资料库

     

    [root@linux ~]# /usr/lib/yp/ypinit –m

    At this point, we have to construct a list of the hosts which will run NIS

    servers.    master.vbirdnis is in the list of NIS server hosts.    Please continue

    to add the names for the other hosts, one per line.    When you are done with the

    list, type a <control D>.

                    next host to add:    master.nis-wb    #这个地方系统会主动生成的     

     

    next host to add:                           #按下 [ctrl]-d

    The current list of NIS servers looks like this:

    master.nis-wb

     

    Is this correct?  [y/n: y] y

    We need a few minutes to build the databases...

    Building /var/yp/vbirdnis/ypservers...

    Running /var/yp/Makefile...

     

    建立资料库之后,必须重启服务

     

    [root@nis]# /etc/init.d/ypserv restart

    [root@nis]# /etc/init.d/yppasswdd restart

    nis client   192.168.1.3

     

    NIS client 端所需要的软件包有:

    ypbind

    yp-tools

     

    1)、NIS client 的设置与启动

     

    1. 直接建立域名

    [root@client]# nisdomainname vbirdnis

    2. 开机启动

    [root@linux ~]# vi /etc/rc.d/rc.local

    # 加入底下這一行:

    /bin/nisdomainname nis-wb

    3. 在启动时 ypbind ,设置 NIS 域名

    [root@linux ~]# vi /etc/sysconfig/network

    # 加入底下這一行:

    NISDOMAIN=nis-wb

     

    2)、设置主机名

     

    vi /etc/hosts    

    192.168.1.2         master.nis-wb    

    192.168.1.3         slave.nis-wb

     

    3)、启动ypbind 來连接 NIS server

     

    [root@nis]authconfig-tui

     

    authconfig

     

    选择使用MD5加密,点击Next进入下一步

     

    启动服务

    [root@client]# /etc/init.d/portmap start
    [root@client]# /etc/init.d/ypbind start

    测试

    yptest可以检查是否成功

    这样就可以使用nis server的用户在client端进行登陆