配置好NIS服务器之后,需要在客户端进行配置才能让客户主机正确的找到NIS服务器并进行信息查询。这一节记录一下在centos 6下NIS客户端的配置。

一、 安装所需软件包

rpcbind: 启动和管理rpc

ypbind: 提供客户端查询的软件包

yp-tools:  提供客户端设定相关功能的软件包

采用yum方式安装这三个软件包:

yum -y install ypbind yp-tools rpcbind

二、设置本主机的nis域

临时性的设置可使用 nisdomainname nis域名 或者 domainname nis域名来设置。如果需要每次开机后自动设置,可编辑/etc/rc.local文件,添加 /bin/nisdomainname nis域名 到文件结尾。同时在/etc/sysconfig/network中添加NISDOMAIN=nis域名一项设置。

可使用nisdomainname或者domainname来查看当前域名是否与要加入的一致。

三、修改连接配置

设置该客户端需要连接到的nis域和服务器地址,编辑/etc/yp.conf文件,按照其给出的格式填好需要加入的nis域和nis服务器主机。常见格式为:

domain nis域名 server 主机名或者IP地址

其中主机名必须能被解析。可以将主机名和其对应的IP地址写到/etc/hosts文件中。这是最常用的做法,在本地即建立了主机路由。例如:

192.168.1.10  nis-server

四、修改信息查询方式

一个不在本机数据库中的用户登陆到主机上,则需要主机向nis服务器发出查询请求。/etc/nsswitch.conf文件保存了用户信息的查询优先顺序。一般说来本地的数据库有最高优先级,如果本地无法找到再向nis发出请求。可以修改nsswitch.conf的几处信息如下:

passwd files nis

shadow files nis

group files nis

hosts files nis dns

需要注意的是hosts查询中,nis放在dns之前比较合适。正常来说自带dns服务器的毕竟少数,一些自定义的主机名通过dns是无法查询到的。所以nis的优先级应该要高于dns。

五、启动服务

启动rpcbind和ypbind服务:

service rpcbind start

service ypbind start

注意centos中要求ypbind必须要求在NetworkManager启用的情形下才能正常工作。由于是静态IP,桌面版中一上来就disable掉了NetworkManager。 在minimal版本中本来就不带。因为NetworkManager这个大坑,在第一次配置的时候被郁闷的不行,各种google最后才在stackoverflow下找到了某个人无意间的说了一句。估计许多人一直在用NetworkManager,所以才没有遇到像我这样的问题吧。

六、设置开机启动

chkconfig –level 35 rpcbind on

chkconfig –level 35 ypbind on

七、客户端工具

yptest命令测试数据库内容与nis信息

ypwhich显示nis服务器主机名

ypmatch查询用户信息

yppasswd修改用户密码

ypcat查看nis相关文件

ypdomainname查看所在nis域

其余命令可通过help查看相关帮助。

八、登陆测试

在nis服务器上建立用户:

useradd -s /bin/bash -d /home/用户名 -m  -g 组名 用户名

设置其登陆密码:

passwd 用户名

然后使用该用户名密码登陆到任意一台nis客户端主机(如果在服务器上配置了客户端环境,其本身也是客户端),应该是可以正常登陆了。但如果客户端下没有用户的家目录,则会发出警告。这就需要nfs挂载目录过去,这是另外的内容。