摘要:Network Information Service最早应该是称为Sun Yellow Pages(简称yp),也就是Sun这家公司出
了一个名为Yellow Pages的服务器软件,请注意,NIS和YP是一摸一样的。黄页就是好比家里的电话薄。正如你
去查询一家厂商的电话号码,通常就是直接查找黄页。而这个NIS也一样,当用户登录时,Linux系统就会到NIS
主机上去找登陆者所用的账号与密码信息加以对比,供用户登陆时验证。
网络信息服务(NIS)是集中控制几个系统管理数据库的网络用品。NIS简化了UNIX和LINUX桌面客户的管理
工作,客户端利用它可以使用中心服务器的管理文件。桌面系统的用户无需建立他们自己的/etc/passwd,他们
只简单的使用维护在NIS服务器的文件即可。
NIS提供的信息主要包括如下所示:
/etc/passwd 供用户账号 、UID、GID、默认目录、Shell等
/etc/group 提供组数据以及UID的对应,还有该组的成员
/etc/hosts 提供主机名称与IP地址的对应,常用于Private IP主机的名称对应
/etc/services 每一种服务(daemon)所对应的端口(port number)
/etc/protocols 基本的TCP/IP数据包协议
/etc/netgroup 网络群组的定义与使用
/etc/rpc 每种RPC服务器所对应的进程号
/var/yp/Servers NIS服务器提供的数据库
NIS的运作流程
由于NIS服务器主要是提供用户登陆的信息客户端主机来查询之用,所以,NIS服务器所提供的数据当然需
要用到传输与读写比较快的数据库文件系统,而不是传统上的纯文本数据。为了是想了个目的,NIS服务器需要
将前面提到的文件做成数据库文件,然后使用网络通信协议让客户端主机来查询。
(1)NIS Server 运行流程
NIS 先将本身的账号密码相关文件制作成数据库文件
若有账号密码变动时,需要重新制作数据库文件
(2)NIS Client运行 流程
NIS Client若有登陆是,会查询其本机的/etc/passwd 、/etc/shadow等文件
若在NIS Client本机找不到相关的账号信息,才开始向整个NIS网段的主机广播查询
NIS Server响应请求
NIS服务器端的设置
NIS服务器端的作用主要用于提供数据库给客户端作为验证之用,当然服务器端可以根据来源分为
master/slave(此时,我们不做slave服务端)
所需软件
yp-tools :提供NIS相关的查询命令功能
ypbind : 提供NIS Client端的设置软件
yp-server:提供NIS Server端的软件
portmap: 这是RPC必须的软件
NIS软件架构
1.配置文件方面
/etc/syscinfig/network:主要用于设置NIS域名称(nisDomainname)
/etc/hosts:很重要,至少需要有各个NIS服务器的IP地址与主机名对应。
/etc/ypserver.conf:这是最重要的配置文件,用于设置NIS客户端是否可登陆的权限
/etc/netgroup :设置信任的主机和域名
/etc/yp/Makefile:建立于数据库有关的操作设置文件
2.服务器提供的主要服务方面
/usr/sbin/ypserver:就是NIS服务器提供的主要服务
/usr/sbin/rpc.ypxfrd:用作Master/Slave主机之间传输数据库的服务
/usr/sbin/rpc.yppasswd :提供额外的NIS客户端的用户密码修改服务,通过这个服务,NIS客户端
可以直接修改在NIS服务器上的密码,使用程序是yppasswd命令。
3.与数据库有关的命令方面
/usr/sbin/yppush:Master主机将有关数据直接送至Slave的命令
/usr/lib/yp/ypinit:建立数据库的命令,非常有用。
/usr/lib/yp/ypxfr:传送数据库的命令。
NIS服务端的配置
1.设置NIS的域名(NIS Domain Name)
所有的NIS Server/client都需要设置NIS域名才行,方法很简单,直接用nisdomainname这个命令来执行
即可。
nisdoaminname [NIS 域名]
或者直接编辑/etc/sysconfig/network即可,添加如下一行
NISDOMAIN=[域名]
2.主要配置文件/etc/ypserver.conf
这个就是NIS Server主要的配置文件。内容简单,保留默认值就行了。
当然要讲信任的网段设置一下
127.0.0.0/255.255.255.0 : * : * : none
192.168.0.0/255.255.255.0 : * : * : none
* : * : * : deny
3.设置主机名称
我们谈到的NIS大都给局域网内的主机使用,所以不必使用DNS设置了。所以为了内网的互相通信,编
辑/etc/hosts,设置好主机与IP地址的对应。
4.启动相关服务
包括RPC、ypserver 、yppasswd
/etc/init.d/portmap start
/etc/init.d/ypserver start
/etc/init.d/yppasswd start
5.建立数据库
将主机上的账号文件装成数据库文件。
/usr/lib/yp/ypinit -m
NIS客户端的配置
软件包:yp-bind ,yp-tools(主要提供查询的软件)
配置文件:
/etc/syscinfig/network:主要用于设置NIS域名称,让ypbind启动时可以设置好。
/etc/hosts:很重要,至少需要有各个NIS服务器的IP地址与主机名对应。
/etc/yp.conf:这个则是ypbind的主配置文件,里面主要规范了NIS Server。
/etc/nsswitch.conf:这个文件最重要,用于规范账号密码与相关信息的查询顺序,默认是
先/etc/passwd,然后是NIS等。
启动NIS Client的设置非常简单,最主要的是先加入NIS Domain,然后再启动ypbind。这个过程如下所示:
1、设置好NIS Domain以及/etc/hosts主机名对应关系
直接建立与域名
nisdoaminname notexample
或者在配置文件中/etc/sysconfig/network编辑
vim /etc/sysconfig/network
NISDOMAIN=notexample
编辑/etc/hosts使主机名称和IP对应。
192.168.0.254 Master.notexample
2、启动ypbind来连接至NIS Server
要启动ypbind,需要设置很多文件。redhat提供了setup编辑authconfig,通过这个工具可以很快的设置
ypbind。
当然亦可以手动编辑这些文件:
/etc/nsswitch.conf(修改主机验证功能的顺序)
/etc/sysconfig/authconfig(认证机制)
/etc/pam.d/system-auth(登陆所需的PAM认证过程)
/etc/yp.conf(ypbind的配置文件)
1 vim /etc/nsswitch.conf
修改文中的这些内容
passwd: files nis(加上NIS)
shadow: files nis(加上NIS)
group: files nis(加上NIS)
hosts: files nis(加上NIS)
2 vim /etc/sysconfig/authconfig
只需将NIS部分的改成yes即可
USENIS=yes
3 vim /etc/pam.d/system-auth
找到这一行 :use_shadow md5 shadow
后面填写上nis即可
4 vim /etc/yp.conf
添加Domain
Domain notexample(NIS域) Server(主机名称)
可以启动ypbind了 ypbind start
NIS Client 检验:
yptest检验数据库
yptest
ypwhich检验数据库数量
ypwhich -x
ypcat 读取数据库内容
ypcat [-h NISServer] [数据库名称]
ypcat passwd.byname