LINUX下NIS服务器的搭建
一、NIS的基本概念
NISnetwork infromation service的缩写,是对主机账号等系统信息提供集中管理的网络服务,NIS一般用于局域网,安全性不高,是开源的;NIS+安全性高,但不是开源的;都是sun公司开发的,又称Sun Yellow Page,简称YPyellow page是黄页技术的意思,即用于查询电话号码和用户名的电话薄,供用户集中查询电话用户的信息。因为NIS具有此特性所以简称YP
NIS服务的应用结构中分为NIS服务器和NIS客户机两种角色
NIS服务器集中维护用户的帐号信息(数据库)供NIS客户机进行查询
用户登录任何一台NIS客户机都会从NIS服务器进行登录认证,可实现用户帐号的集中管理
NIS服务器不仅为客户机提供用户账号信息,NIS数据库中还包含以下信息
用户账号信息,包括用户名、登录口令、和用户宿主目录等信息,用于取代linux主机中的passwdshadow文件的作用
组账号信息,包括组账号等,用于取代linux主机中的group文件的作用
IP地址与主机名称对应记录的信息,用于取代linux主机中的hosts文件的作用
这些信息都保存在不同名称的数据库文件中进行集中管理
二、NIS服务器端配置管理
NIS服务器的基本设置步骤:
  安装NIS服务器软件包
  设置timetime-udp服务的启动状态
  建立服务器中的NIS域名
  设置ypserv服务的配置文件
  启动NIS服务器
  构建NIS数据库
NIS 服务器端安装配置
1NIS服务器的安装
  RHEL4的第1张安装光盘中包括NIS服务器的安装包,ypserv默认系统没有安装;系统中的ypbind软件包是NIS客户端需要的软件包,yp-tools  软件包是提供NIS服务查询和管理的工具软件,后两个默认已安装。另外ypserv服务器和NFS服务器类似,,需要portmap服务的支持,因此在  安装ypserv之前要先确认portmap软件包是否已安装
       #rpm -qa | grep ^yp
       #rpm -q portmap
       # rpm -ivh ypserv-2.13-5.i386.rpm
 
2、设置timetime-udp服务的启动状态
Timetime-udp是受xinetd超级服务管理的服务,ypserv服务的启动和运行需要这两个服务的支持。
命令:
Chkconfig –level 35 time on
Chkconfig –level 35 time-udp on如下图所示
 
LINUX下NIS服务器的搭建(图文详解)_第1张图片
3、建立NIS的域名
  NIS客户机中建立NIS域名的操作与NIS服务器中相同
       # nisdomainname nistest
       # echo '/bin/nisdomainname nistest' >> /etc/rc.d/rc.local
       # echo 'NISDOMAIN=nistest' >> /etc/sysconfig/network
4、设置ypserv服务的配置文件
1ypserv.conf文件的配置
#vi /etc/ypserv.conf
配置如下图:
2securenets安全配置文件
Securents文件系统中默认没有,需要手动建立。当sercurents文件不存在时,NIS服务器将允许所有主机访问NIS服务器(默认的安全设置有欠缺)
#vi /var/yp/securenets
配置如下图所示:
2securenets安全配置文件
Securents文件系统中默认没有,需要手动建立。当sercurents文件不存在时,NIS服务器将允许所有主机访问NIS服务器(默认的安全设置有欠缺)
#vi /var/yp/securenets
配置如下图所示:
LINUX下NIS服务器的搭建(图文详解)_第2张图片
2securenets安全配置文件
Securents文件系统中默认没有,需要手动建立。当sercurents文件不存在时,NIS服务器将允许所有主机访问NIS服务器(默认的安全设置有欠缺)
#vi /var/yp/securenets
配置如下图所示:
LINUX下NIS服务器的搭建(图文详解)_第3张图片
 
5、启动NIS服务器
#service portmap status
#service ypserv start   //启动服务
#service yppasswdd start  //此服务开启后客户机登录后可改密码
#chkconfig –level 35 ypserv on
#chkconfig –level 35 yppasswdd on //改变两个服务的运行级别
6、构建NIS数据库
命令:
# /usr/lib/yp/ypinit –m
NIS 客户端配置管理
1NIS客户机所需要的软件包
需要ypbindyp-tools两个软件包
#rpm –qa |grep ^yp
系统默认已经安装
2、设置hosts文件
[root@benet02 ~]# echo '192.168.1.1 benet01'>>/etc/hosts
其中benet01是我NIS服务器的主机名
3、建立NIS的域名
#nisdomainname nistest
[root@benet02 ~]# echo '/bin/nisdomainname nistest '>>/etc/rc.d/rc.local
[root@benet02 ~]# echo 'NISDOMAIN=nistest'>>/etc/sysconfig/network
5、设置nsswitch.conf文件
sswitch.conf文件默认查询方式是对用户、组和域名都使用本地文件和DNS查询,而它相关的passwdshadowgrouphosts不代表系统中  的文件和命令,是表示相关信息的查询,其含义如下
  passwd表示用户账号信息的查询,shadow表示用户口令信息的查询,group表示用户组账号信息的查询,hosts表示主机名信息的查询。
  文件中需要添加使用nis作为主机信息的查询方式,原始files后边都没有nis,添加后表示优先使用本地文件,然后使用nis服务器查询信息
       passwd:     files nis
       shadow:     files nis
       group:      files nis
       hosts:      files nis dns
如下图所示:
LINUX下NIS服务器的搭建(图文详解)_第4张图片
6、启动ypbind服务程序
[root@benet02 ~]# service ypbind start
7、使用NIS客户机测试NIS服务器
  yp-tools软件包中提供了三个测试命令
  yptest命令可对NIS服务器域名、主机、数据库进行自动测试,它基本的测试命令
       # yptest
  ypwhich命令可显示NIS客户机所使用的NIS服务器的主机名称,和-x配合使用将显示数据库文件列表
       # ypwhich
       # ypwhich -x
  ypcat命令显示数据库文件列表和指定数据库的内容(ypcat -xypwhich -x的查询结果相同)
       # ypcat -x
       # ypcat passwd
      
9NIS客户端用户登录
  用户可以使用NIS服务器中的用户帐号登录任何NIS客户机
  用户成功登录NIS客户机后可能无法找到宿主目录,因为本地主机中没有在/home目录中建立其宿主目录
用户口令修改
  用户可登录任何一台NIS客户机进行用户口令修改
  用户需要使用yppasswd命令修改NIS服务器中的用户口令,如果是root用户修改指定用户的口令,需要输入其口令
       $ yppasswd
注意有时NIS客户端不能和NIS服务器正常通信,可能是iptables防火墙的原因,可以用#service iptables stop将其关闭
四、NIS的基本使用
1、在NIS服务器中将“/home”目录输出为NFS共享目录
  exports文件中设置NFS共享目录
       /home  192.168.1.0/24(rw,async,no_root_squash)
  启动NFS服务器
       # service nfs start
2、在所有NIS客户机中挂载NIS服务器主机中的“/home”目录
  fstab文件中添加NFS文件系统挂载记录
       LinServ:/home/   /home nfs defaults    0 0
  使用mount命令挂载“/home”目录
       # mount /home
挂载命令如下图所示:
LINUX下NIS服务器的搭建(图文详解)_第5张图片
备注:
/etc/rc.local文件中的命令是机器后最后执行的命令
#-bash -s:表示我不到家目录
 LINUX下NIS服务器的搭建(图文详解)_第6张图片