[RedHat6.2]NIS服务器的配置

NIS服务器主要用来对用户的账户与密码进行统一管理,它存在的意义:假设公司内部共有20台Linux主机,对于公司内的员工来说,他们可以访问所有的这20台Linux主机,我们假设公司某位成员需要修改密码,为了使能够登录所有的主机,传统的思维就是要分别到这20太Linux主机上执行passwd,这样是非常低效的,对管理人员来说是非常不方便的事情,因此NIS服务就是来解决这个问题的,它的原理是,将所有用户的帐号密码等信息都保存在NIS服务器上,当某位用户登录其中的一台Linux主机时,在进行帐号密码验证时,登录的那台主机会向NIS服务器发送验证请求,如果正确则用户登录成功,反之用户登录不成功。

NIS服务器是将用户的帐号和密码保存在数据库文件中,NIS客户机向它发送请求是需要通过RPC(远程过程调用)这个协议。

所有的NIS客户机都是请求的一台NIS服务器,因此就可以实现一个帐号可以登录所有Linux主机了,而且当用户修改了自己的密码后,它会同步到NIS服务器的数据库文件中,这样就完成了一改多改的效果,对与帐号管理非常方便。

一、NIS服务器端的配置

        1. 确定所需软件已经安装

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

             ypbind: 因为Client与Server是要通信的,因此需要bind

             ypserv: NIS Server端的设置软件

             rpcbind:RPC必须的软件

        2. 开始配置NIS服务器

             1> 设置NIS服务器的域名

                    nisdomainname domainname

                    vi /etc/sysconfig/network

                   :NISDOMAIN=domainname           设置域名

                   :YPSERV_ARGS="-p 1011"            设置NIS每次都在固定的端口,即:1011启动,这是为了将来方便使用iptables直接管理NIS

                   #开机自动设置域名

                     vi /etc/rc.local

                     /sbin/nisdomainname  domainname     #添加

             2>配置主文件/etc/ypserv.conf

                 [主机名/IP]                                                      [NIS域名]                                       [可用数据库名称]                           [安全限制]

                 192.168.171.0/255.255.255.0       :                  *                              :                            *                          :                   none

                [安全限制]: 包括没有限制none ,  仅能使用小于1024的端口port , 以及拒绝deny

             3> 设置主机名与IP的对应

                   vi /etc/hosts

                   192.168.171.135           nisserver

                   192.168.171.136           nisclient01

                   192.168.171.137           nisclient02

                   ...

                   所有主机的IP与主机名的对应都要写在这里面

             4> 启动与查看相关的服务

                   vi /etc/sysconfig/yppasswdd

                   YPPASSWDD_ARGS="--port 1012"    找到该位置,修改成这样

                    /etc/init.d/ypserv start

                    /etc/init.d/yppasswdd start

                    chkconfig ypserv on          # 设置为开机自启动

                    chkconfig yppasswd on

                    rpcinfo -u localhost ypserv

                    #出现下面的字样,说明是正常的#

                    program  100004   version  1  ready  and  waiting

                    program  100004   version  2  ready  and  waiting

             5> 处理帐号并建立数据库

                   useradd -u 1001 testuser01

                   useradd -u 1002 testuser02

                   useradd -u 1003 testuser03

                   echo testuser01 | echo passwd --stdin testuser01

                   echo testuser02 | echo passwd --stdin testuser02

                   echo testuser03 | echo passwd --stdin testuser03

                   #这样就建好了三个用户     testuser01  testuser02  testuser03   密码和用户名相同   -u  代表指定uid

                   #接下来将建立的帐号与密码数据转换成数据库

                   /usr/lib64/yp/ypinit -m 

                   注意:如果用户密码发生过变化,就需要重新制作数据库,重新启动ypserv 以及yppasswdd.

                    比如在服务器端添加了用户useradd somebody或者修改了密码passwd somebody 都需要重新创建数据库,即:/usr/lib/yp/ypinit -m

             6> 防火墙设置

                  这里先将NIS服务器的防火墙关了: service iptables stop

二:NIS Client端的设置

             1>  设定NIS域名

                     nisdomainname  domainname    # 要和NIS Server的域名一样才行

                     vi /etc/hosts

                     NISDOMAIN=domainname

                     vi /etc/rc.local

                     /sbin/nisdomainname  domainname

             2> 查看安装所需的安装包

                     ypbind      yp-tools

             3> 设置主配置文件:

                      vi /etc/yp.conf

                      domain  domainname   server  192.168.171.135     #添加

                      #格式为:domain   你的NIS Server和Client所在的域名  server  你的NIS服务器的IP地址

               4> 设置/etc/nsswitch.conf文件,修改验证用户账户和密码时的顺序

                          找到如下项:
                          passwd: files
                          shadow: files
                          group: files
                          #hosts: db files ldap nis dns
                          hosts: files dns

                          将其修改为:
                          passwd: files nis
                          shadow: files nis
                          group: files nis
                          #hosts: db files ldap nis dns
                          hosts: files nis dns
                5> 查看客户端portmap进程的启动状况,确定无误后启动其ypbind进程:
                      service portmap status
                      portmap (pid 1774) is running...

                      service ypbind start
                      Shutting down NIS services: [ OK ]
                      Binding to the NIS domain: [ OK ]
                      Listening for an NIS domain server.

                      将ypbind设置为开机自动启动
                      chkconfig --level 2345 ypbind on
                 6>  测试客户端的连接

                        yptest

                        #会看到测试信息,分辨出是否出了问题  Test 3  Wraing : No such key in map(Map passwd.byname , key nobody)
                        ypwhich -x    检查数据库

                  7> 配置客户端在启动时登录到NIS域
                       vi /etc/sysconfig/authconf

                       #找到并修改以下位置

                       USENIS=no  改为   USEINS=yes

                   8> 客户端测试

                         su - testuser01 

                         Last login: Wed Jul 11 17:59:14 2007 from server 

                        Could not chdir to home directory /home/nisuser: No such file or directory-bash-3.00$

                         这是正常的,因为我们知道所有用户的信息都是保存在NIS服务器端的,因此找不到用户的目录,这里的解决方法是要用到NFS , 即将/home目录共享,在NIS客户端只需要挂载即可,这里我们暂不介绍,以后待续。。。

你可能感兴趣的:([RedHat6.2]NIS服务器的配置)