NIS服务器配置

      NIS全称Network Information Services,它的最大用途在于向客户端用户提供信息查询,如果举个例子来说明它的用途的话,就是如果在一个公司中有100个人的话,为了对他们进行管理,作为管理员我们需要为他们的每一台机器都设置一个帐号,但是这样显然非常的麻烦,要是再有员工进来的话,还要一个一个的为他们再添加帐号,这样的话只是增加帐号管理员就会崩溃的,所以我们想可不可以对这些帐号进行集中管理,只是在系统管理员的主机上操作一下就可以为他们设置帐号呢,现在我们就可以使用NIS了,NIS有点像windows的域控制,我们可以把系统管理员的主机作为一个NIS服务器,在服务器上设置帐号,但这个帐号可以被远程用户来登录,只需要在系统管理员的主机上验证就可以了。说白了,就是员工(client)在登录主机的时候,要先到管理员(server端)主机上来查询帐号与密码,帐号密码验证成功就可登录。管理员想要增加帐号的时候,只需要在自己的主机上增加即可。

     在通常使用中,小型的公司都是单独使用一个NIS server就可以支撑整个公司的使用,但是如果公司内的人比较多的话或者这台NIS服务器的负载比较大的时候,为了保证NIS服务器的正常运转,我们可能要再架设一个NIS Slave了,NIS服务器的Master/Slave主从架构对保证安全性还是很好的。

现在我们可以通过一个案例来说明一下NIS服务器的架设。

条件:

      NIS服务器名称:server-nis

          NIS Master ip:192.168.2.10

          NIS Client ip :192/168.2.12

     1>  首先我们先来看一下需要的软件

         yp-tools:它提供NIS相关的查询命令

         ypbind:NIS客户端软件

         ypserv: NIS服务器设置软件

         portmap:RPC软件(NIS是基于RPC的)

     2>服务器端的配置

         1.安装服务器软件

           [root@localhost ~]# mount /dev/cdrom /mnt/cdrom

            mount: block device /dev/cdrom is write-protected, mounting read-only

            [root@localhost ~]# cd /mnt/cdrom/Server/

            [root@localhost Server]# rpm -ivh ypserv-2.19-5.el5.i386.rpm 

            warning: ypserv-2.19-5.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

            Preparing...                ######################### [100%]

            1:ypserv                 ########################### [100%]

        2.我们先来介绍几个比较重要的文件

         /etc/ypserv.conf:  NIS配置文件,用于设置客户端是否可登录的权限

         /var/yp/Makefile:建立与数据库有关的操作设置文件

         /etc/sysconfig/network:可以在这个文件中指定NIS域名 

         /usr/lib/yp/ypinit:建立数据库的命令

        3.NIS建立域名

          [root@localhost ~]# vim /etc/sysconfig/network     添加如下一行

               NISDOMAIN=serve-nis

             设置NIS服务器 开机启动

              [root@localhost ~]# vim /etc/rc.d/rc.local   添加如下一行

              /bin/nisDomainname serve-nis

         3.对于配置文件,我们保持默认就可以了。

         4.我们可以看一下/var/yp/Makefile文件中的内容,修改要把哪些帐号产生出可供客户端登录的帐号

        [root@localhost ~]# vim /var/yp/Makefile 

           将all:  passwd group hosts rpc services netid protocols mail \ 

              修改成为:

             all:  passwd group hosts \      只允许普通帐号登录

         5.启动服务

             [root@localhost ~]# service portmap start

           Starting   portmap:                                          [  OK  ]

              [root@localhost ~]# service ypserv restart

              Stopping YP server services:                               [  OK  ]

              Setting NIS domain name serve-nis:                         [  OK  ]

               Starting YP server services:                               [  OK  ]     

     6.建立NIS帐号数据库

[root@localhost ~]# /usr/lib/yp/ypinit -m

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

servers.  localhost.localdomain 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:  localhost.localdomain

next host to add:                         //ctrl+d

The current list of NIS servers looks like this:

localhost.localdomain

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

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

Building /var/yp/serve-nis/ypservers...

Running /var/yp/Makefile...

gmake[1]: Entering directory `/var/yp/serve-nis'

Updating passwd.byname...

Updating passwd.byuid...

Updating group.byname...

Updating group.bygid...

Updating hosts.byname...

Updating hosts.byaddr...

gmake[1]: Leaving directory `/var/yp/serve-nis'

localhost.localdomain has been set up as a NIS master server.

Now you can run ypinit -s localhost.localdomain on all slave server  

             

     现在可以看到在文件/var/yp下生成了server-nis目录

但是如果我们每在master主机中加入一个帐号都要重新生成一次数据库

如我们建立一个测试帐号:test

 [root@localhost ~]# useradd test

[root@localhost ~]# passwd test

Changing password for user test.

New UNIX password: 

BAD PASSWORD: it is WAY too short

Retype new UNIX password: 

passwd: all authentication tokens updated successfully.

为其添加一个文件

[root@localhost ~]# cd /home/test/

[root@localhost test]# ll

total 0

[root@localhost test]# touch server

这里就需要重新生成一次数据库

 [root@localhost ~]# cd /var/yp/

[root@localhost yp]# make 

gmake[1]: Entering directory `/var/yp/serve-nis'

Updating passwd.byname...

Updating passwd.byuid...

Updating group.byname...

Updating group.bygid...

gmake[1]: Leaving directory `/var/yp/serve-nis'  上面的命令就可以重新生成数据库了

3>NIS  client端设置

  我们在图形界面下进行客户端的设置,首先键入:setup----->Authentication configuration--->

NIS服务器配置案例_nis

  

 

NIS服务器配置案例_nfs_02

      

   点击ok后,服务自己启动。

现在我们就可以登录NIS主服务器上的帐号了,但是在登录之前先查看一下Client端有没有这个帐户,因为client在登录帐号的时候,是先查看本地是否有这个用户,如果有的话,则直接登录,否则发送广播包远程登录NIS服务器上的帐号。

  登录

   

   [root@localhost ~]# su - test

su: warning: cannot change directory to /home/test: No such file or directory

-bash-3.2$

登录之后你会发现是这个状态,这是因为本地没有test主目录,但是我们不可能在客户端为了给test一个主目录再建立test这个帐号,所以我们可以利用NFS来共享NIS服务器上的test的主目录,并且实现在client的自动挂载。

   在服务器端配置NFS服务器

   [root@localhost yp]# vim /etc/exports   添加如下内容

    /home/test  *(ro,sync)

   开启NFS服务

   [root@localhost yp]# service nfs start

Starting NFS services:                                     [  OK  ]

Starting NFS quotas:                                       [  OK  ]

Starting NFS daemon:                                       [  OK  ]

Starting NFS mountd:                                       [  OK  ]

 在客户端配置autofs自动挂载

   先测试挂载目录

   [root@localhost ~]# service portmap start

Starting portmap:                                          [  OK  ]

[root@localhost ~]# showmount -e 192.168.2.10

Export list for 192.168.2.10:

/home/test *

      配置autofs配置文件 

        [root@localhost ~]# vim /etc/auto.master   添加下面一行

         /home /etc/auto.nfs   --timeout=60

      创建/etc/auto.master并配置

     [root@localhost ~]# cp -p /etc/auto.misc /etc/auto.nfs

      [root@localhost ~]# vim /etc/auto.nfs

      test  -ro,soft,intr    192.168.2.10:/home/test

     启动autofs服务

     [root@localhost home]# service autofs restart

     Stopping automount:                                        [  OK  ]

      Starting automount:                                        [  OK  ]

现在我们可以再次切换到test用户,看看结果

  [root@localhost ~]# su - test

[test@localhost ~]$ ll

total 0

-rw-r--r-- 1 root root 0 Dec 26 08:20 server

[test@localhost ~]$ 

测试成功,这样的话,nis客户端就可以正常的使用了