NIS,全称network information Service,网络信息服务,用于管理。
Master服务端配置
1.安装NIS需要软件软件
# rpm –qa | grep ypbind
# rpm –qa | grep yp-tools
# rpm –qa | grep ypserv
# rpm –qa | grep rpcbind
# rpm –qa | grep portmap
# yum install –y ypbind
# yum install –y yp-tools
# yum install –y ypserv
# yum install –y rpcbind
# yum install –y protmap
2.建立NIS域 mynis //区别于DNS域,完全不同的概念
# nisdomainname mynis //命令直接建立,重启消失
# echo “/bin/nisdomainname mynis”>>/etc/rc.d/rc.local /////追加到这个文件里
# echo “NISDOMAIN=mynis”>>/etc/sysconfig/network ////追加到这个文件里
3.设定服务端的主机名称 master
# echo “10.10.12.1 master” >/etc/hosts
# echo “HOSTNAME=master”>>/etc/sysconfig/network
4.修改配置文件/etc/ypserv.conf
添加以下三行:
127.0.0.0/255.0.0.0: * : * : none //////本地无限访问nis服务器
10.10.12.0/255.255.255.0: * : * : none //////这个网段无限访问nis服务器
* : * : *: deny ///////拒绝所有(除了上面的)
5.重启NIS服务
# /bin/systemctlrestart portmap ///////开启rpc远程端口(启动失败)
# /bin/systemctlrestart ypserv ///////开启NIS服务
# /bin/systemctlrestart yppasswdd ///////开启修改密码的服务(启动失败)
6.测试,创建一个测试用户
# useradd nisuser
# passwd nisuser
7.共享/home目录
# vi /etc/exports
添加下面内容:
/home 10.10.12.1/255.255.255.0(sync,rw,no_root_squash)
8.建立数据库,使用命令
# /usr/lib64/yp/ypinit –m
按提示操作……
………………………..
…………………………..
Next host to add: nis
Next host to add: //////按ctrl +D组合键
………………
[y / n : y]y ///////输入y键
9.建立允许访问的群体
# touch /etc/netgroup ///////在配置文件已经做了限制,这个文件建立之后是空的就行
10.vi /etc/hosts 建立ip和域名的对应关系
10.10.12.1 master //////主NIS服务器
10.10.12.x slave //////从NIS服务器
……
Slave客户端配置
1.软件安装
yum install ypbind
2.设置/etc/hosts,添加如下内容到文件的尾部
10.10.12.1 master //////主NIS服务器
10.10.12.x slave //////从NIS服务器
3.编辑 /etc/sysconfig/network,如下红色字体的是需要修改或添加的
HOSTNAME=your hostname (经测试此句话可不写,方便复制到其它节点上去)
NISDOMAIN=mynis
4.设置 NIS域名
# nisdomainname mynis #假设nis域名叫 mynis
# echo'/bin/nisdomainname mynis' >>/etc/rc.local
5.设置/etc/yp.conf配置文件
# echo "domainmynis server 10.10.12.1" >>/etc/yp.conf
6. 设置/etc/nsswitch.conf文件,以指定通过 nis进行身份认证
passwd: files nis
shadow: files nis
group: files nis
hosts: filesnis dns
设置认证方式,使用命令authconfig-tui,选择“Use NIS”
客户端部分至此结束。
7. 启动master和slave的几个服务
/bin/systemctlrestart rpcbind.service
/bin/systemctl restart ypbind.service
注意:ypbind服务需要加入下句话,master、slave想要启动,都得加
master多一个服务:
/bin/systemctl restart yppasswdd.service
提醒:centos7的rc.local一定要能够执行:chmod +x /etc/rc.d/rc.local,否则重启后一直不生效。
扩展:
从nis服务器配置
一般企业里有主NIS服务器就能够满足需求了,这略过,有兴趣的读者请参考相关技术资料,这个不再赘述。
客户端的几个测试命令
01: yptest命令 使用客户端之前,先使用该命令进行测试
02: ypwhich 命令 显示服务端的数据库文件
03: ypcat 命令 显示服务端的账号密码等信息
最后,需要在客户端挂载服务端共享的/home目录到自己的/home下面。
8.挂载服务端的/home到客户端
mount –t nfs 10.10.12.1:/home /home
vi /etc/fstab,使其开机自动挂载
10.10.12.1:/home/home nfs rw,defaults 0 0
========值得注意的一些点========================================================
如果服务有异常,可以用 yptest排错
1) 如果ypserv没有启动,在client端执行yptest返回
Test 2: ypbind
can't yp_bind: Reason: Domain not bound
2) 如果ypbind没有启动,在client端执行yptest返回
Test 2: ypbind
Can't communicate with ypbind
3) 如果在server端删除用户,但是没有 make -C /var/yp 的话,client端仍然能够用这个用户登录。
================================================================
问题:用户登录没有家目录???
vi /etc/sysconfig/selinux 修改SELINUX=permissive并重启
安装了NIS后,普通用户SSH无法生效
方法一:在服务端的普通用户~目录下执行ssh-keygen –t rsa,然后进入.ssh目录执行cat id_rsa.pub >>authorized_keys,然后修改权限:chmod 600authorized_keys,接着可以切换到客户端ssh master,ok
方法二:如果上面执行不成功,需要执行:chmod g-w ~/ ,完事大吉!!!
以下是网上相关的解决方法: