简述NIS
NIS,网络信息服务(Network Information Service)是集中控制几个系统管理数据库的网络用品。NIS简化了UNIX和LINUX桌面客户的管理工作,客户端利用它可以使用中心服务器的管理文件。桌面系统的用户无需建立他们自己的/etc/passwd,他们只简单的使用维护在NIS服务器的文件即可。
用户只需要在nis服务器上面创建,客户端加入nis域,直接可以使用Nis域上的用户来登录客户端。
NIS Server:
1、Nis Master先将帐号密码相关文件制作成数据库文件
NIS Client:
1、NIS client 若有登入需求时,会先查询其本机的 /etc/passwd, /etc/shadow 等档案;
2、若在 NIS Client 本机找不到相关的账号数据,才开始向整个 NIS 网域的主机广播查询.
1、所需软件
1)yp-tools :提供 NIS 相关的查寻指令功能
2)ypbind :提供 NIS Client 端的设定软件
3)ypserv :提供 NIS Server 端的设定软件
4)portmap :这是 RPC必须的软件!
2、相关端口
portmap :111,因为NIS、NFS 都是依赖于portmap服务, 6.0/7.0 版本用rpcbind取代portmap服务.portmap相当于一个中间媒介,比如介绍客户端连接到服务端即可
3、相关包
ypserv(NIS服务器必需的),ypbind(NIS客户端必需的,默认已安装),yp-tools(NIS的常用工具,默认已安装)
小试牛刀
服务端的的配置:
1、安装ypserv服务相关的包。
Yum install ypserv
2、建立一个Nis专用用户目录文件夹:
mkdir /nishome
3、建立一个NIS用户:(可以使用该方式建立多个用户)
useradd -d /nishome/user1 –u 2020 user1
(可选:设定user1,2,3用户的密码,主要为了后期验证中,这些用户之间的切换)
4、编辑/etc/sysconfig/network为NIS服务器指定NIS网域名:
vim /etc/sysconfig/network
NISDOMAIN=www.example.com
5、运行:nisdomainname www.example.com //这里的域名和上面=号后面的一样!意为加入域www.example.com
nisdomainname
(none)测验结果显示目前没有加入域
nisdomainname www.example.com
nisdomainname
www.example.com 测试结果现实加入了域
www.example.com
6、在linux下,如需添加随系统启动而自动运行的服务编辑/etc/rc.d/rc.local,
加入www.example.com域;
echo “/usr/bin/nisdomainname www.example.com” >> /etc/rc.d /rc.local
注意:>>是追加,而不是>覆盖
7、重启动ypserv服务:
systemctl restart ypserv.service
查看ypserv服务状态:systemctl status ypserv.service
8、生成NIS 用户数据库:/usr/lib64/yp/ypinit -m(该服务器上的所有用户名都将用作客户端身份认证) 注意,每次添加用户之后,都需要重新生成nis数据库。ypinit是NIS数据库安装和构建程序
/usr/lib64/yp/ypinit -m
键入上面命令后会出现如下提示:
next host to add: localhost.localdomain ----服务器hostname,只有一个服务器的话,就按下面的ctrl+d ,如果有多个服务器,接着输入
next host to add: //这里直接按Ctrl+d
The current list of NIS servers looks like this:
localhost.localdomain
Is this correct? [y/n: y] y
配置完以上命令后在/var/yp下检查有没有生成一个NIS域名命名的目录(这里为www.example.com),这是NIS用户数据库,如果没有则删除该目录下的’”(none)”目录,再重新生成数据库。
9、重启服务:
systemctl restart ypserv.service
10、使用NFS共享NIS用户家目录,这里主要是将用户家目录中的三个.bash开头的文件共享给客户端(前提必须启动nfs服务):
Vim /etc/exports
加入内容:/nishome *(rw)
exportfs -ra 相当于重启服务
客户端的配置:
1、setenforce 0 改为警告模式
2、客户端加入NIS域:
输入setup –该命令在图形化界面的终端上面执行
依次选择:验证配置–选中使用NIS–输入域名以及IP–退出。
3、Systemctl restart portmap注意6.0、7.0 版本上没有portmap服务,服务名称改变为rpcbind
4、设置客户端机器上的自动挂载
安装自动挂载服务:yum install autofs
编辑控制文件
vim /etc/auto.master
/nishome /etc/auto.nis1
配置控制文件
vim /etc/auto.nis1
* -fstype=nfs 192.168.133.130:/nishome/&
适合于所有nis用户自动挂载家目录
user1 -fstype=nfs 192.168.10.40:/nishome/user1
只适合user1用户自动挂载家目录
5、重启服务
systemctl restart autofs
Nis服务器上面,新建立的用户,如果需要客户端验证访问,那么需要在服务器端重新生成nis数据库,然后重启ypserv服务。
6、nisdomainname查看域名
7、切换用户进行验证
nis服务配置好几次,总不能一次成功,都需要将客户端重启之后,方可成功。若是有同僚遇到类似问题,并且经检查,配置无误后,可尝试着重启客户端(不是重启服务,而是reboot),再试试看能否解决这玄学问题