在Centos7中配置NIS的详细过程
原理
NIS(Network Information Service)
在有多台linux服务器的环境中,且一台linux服务器的账号又有很多且可能会相同,所以会出现理员很难管理的现象。NIS的主要功能是对主机账号系统等系统信息提供集中的管理。
当NIS客户机需要进行用户登录的信息验证时,就向NIS服务器发出查询请求。当系统中的一台NIS服务器为多台NIS客户机提供服务时,用户登录系统中的任何一台NIS客户机都会从NIS服务器进行登录验证,这样就实现了集中管理用户账号的功能。
网络环境准备
名称 | ip 地址 | 主机名称 |
---|---|---|
NIS服务器 | 13.10.29.2 | node292 |
NIS客户端 | 13.10.29.3 | node293 |
安装前准备
1、停止firewall
systemctl stop firewalld
2、禁止firewall开机启动
systemctl disable firewalld.service
2、修改selinux
vi /etc/selinux/config
将SELINUX=enforcing改为:SELINUX=disabled
,并执行setenforce 0
使他立即生效,当然你也可以重启机器
NIS服务器操作
1、安装软件包
yum -y install ypserv ypbind yp-tools rpcbind
2、设置NIS网络名称
vi /etc/sysconfig/network
在里面添加一行NISDOMAIN=nisdomain,用来指定NIS服务器的域名称为nisdomain
3、增加开机自动加入NIS域
vi /etc/rc.d/rc.local
在里面添加一行/bin/nisdomainname nisdomain
注意哦~~此时可以使用nisdomainname直接查看,如果发现没有展示设置的域名,再输入nisdomainname nisdomain
4、创建域用户(组)
useradd -s /bin/bash nisuser
并设置用户密码
passwd nisuser
创建用户组
groupadd nisgroup
5、设置主要配置文件添加权限
vi /etc/ypserv.conf
添加如下三行,限制了只能加入13.10网段的服务器
6、在NIS域服务器中添加NIS客户端的信息
vi /etc/hosts
在里面添加如下两行:
13.10.29.2 node292
13.10.29.3 node293
7、启动NIS服务
systemctl start rpcbind
systemctl start yppasswdd
systemctl start ypserv
8、初始化数据库
/usr/lib64/yp/ypinit -m
再执行“ctrl+D”,再输入y
注意哦~~如果期间有更改NIS服务器的配置文件,则需要重新初始化数据库
9、初始化数据库后需要重启服务
systemctl start rpcbind
systemctl start yppasswdd
systemctl start ypserv
10、设置服务开机自启动
systemctl enable rpcbind
systemctl enable yppasswdd
systemctl enable ypserv
NIS客户端操作
1、安装软件包
yum -y install ypbind yp-tools rpcbind
2、在网络中添加NIS域
vi /etc/sysconfig/network
在里面添加一行NISDOMAIN=nisdomain
3、设置开机自动加入NIS域
vi /etc/rc.d/rc.local
添加/bin/nisdomainname nisdomain
同样注意哦~~此时可以使用nisdomainname直接查看,如果发现没有展示设置的域名,再输入nisdomainname nisdomain
4、在NIS客户端中添加NIS服务器的信息
vi /etc/hosts
13.10.29.3 node293
13.10.29.2 node292
5、用图形界面配置NIS,直接输入:
authconfig-tui
6、启动服务
systemctl start rpcbind
systemctl start ypbind
此时可以验证下是否部署成功,在客户端上输入yptest,如果能看到nis服务器上的用户,恭喜部署没有问题啦。
以上NIS环境已经部署结束了!!
Client测试
1.yptest
[root@178-119-30-17 home]# yptest
Test 1: domainname
Configured domainname is "nisdomain"
Test 2: ypbind
Used NIS server: 178-119-30-17.access.telenet.be
Test 3: yp_match
WARNING: No such key in map (Map passwd.byname, key nobody)
Test 4: yp_first
hysys hysys:$6$ufKxnBDYMrppYZwc$WaT2C71uYUGPmJ2Cgq4zxyrN1Ma3UTOGIZOyAtCkdUxHbOHI7VdTHGgcwV8OiTEpYuf.CjE7IbFVbx3DvwQQ91:1000:1000:hysys:/home/hysys:/bin/bash
Test 5: yp_next
tsq01 tsq01:$6$PaCnrNAM$CqSZLKVkRtWB6SX/tcR2HAljaGVFJzhlFAfLV/UoQgkdBWu88V7LrC26QQbf1L6p7panC/AM8ygxBYYr8Jhw91:1001:1001::/home/tsq01:/bin/bash
tsq02 tsq02:!!:1002:1001::/home/tsq02:/bin/bash
tsq03 tsq03:!!:1003:1001::/home/tsq03:/bin/bash
tsq05 tsq05:!!:1005:1002::/home/tsq05:/bin/bash
Test 6: yp_master
178-119-30-17.access.telenet.be
Test 7: yp_order
1698306835
Test 8: yp_maplist
netid.byname
passwd.byuid
passwd.byname
group.bygid
group.byname
mail.aliases
protocols.byname
protocols.bynumber
services.byservicename
services.byname
rpc.bynumber
rpc.byname
hosts.byaddr
hosts.byname
ypservers
Test 9: yp_all
hysys hysys:$6$ufKxnBDYMrppYZwc$WaT2C71uYUGPmJ2Cgq4zxyrN1Ma3UTOGIZOyAtCkdUxHbOHI7VdTHGgcwV8OiTEpYuf.CjE7IbFVbx3DvwQQ91:1000:1000:hysys:/home/hysys:/bin/bash
tsq01 tsq01:$6$PaCnrNAM$CqSZLKVkRtWB6SX/tcR2HAljaGVFJzhlFAfLV/UoQgkdBWu88V7LrC26QQbf1L6p7panC/AM8ygxBYYr8Jhw91:1001:1001::/home/tsq01:/bin/bash
tsq02 tsq02:!!:1002:1001::/home/tsq02:/bin/bash
tsq03 tsq03:!!:1003:1001::/home/tsq03:/bin/bash
tsq05 tsq05:!!:1005:1002::/home/tsq05:/bin/bash
1 tests failed
从这个测试当中可能发现一些错误,就是在 Test 3 出现的那个警告信息啦。只是说没有该数据库而已~ 该错误是可以忽略的。
重点在第 9 个步骤 yp_all 必须要有列出你 NIS server 上头的所有帐户信息,如果有出现账号相关数据的话,那么应该就算验证成功了!
2. ypwhich
ypwhich用来查看资料库映射数据
3.ypcat
ypcat查看数据库映射
ypcat读取映射数据库数据 ypcat -k