转自 http://blog.csdn.net/dream_angel_z/article/details/44226055
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 protmap2.建立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/network4.修改配置文件/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 nisuser7.共享/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 ypbind2.设置/etc/hosts,添加如下内容到文件的尾部
10.10.12.1 master //主NIS服务器 10.10.12.x slave //从NIS服务器3.编辑 /etc/sysconfig/network
HOSTNAME=your hostname (经测试此句话可不写,方便复制到其它节点上去) NISDOMAIN=mynis4.设置 NIS域名
# nisdomainname mynis #假设nis域名叫 mynis # echo'/bin/nisdomainname mynis' >>/etc/rc.local5.设置/etc/yp.conf配置文件
# echo "domainmynis server 10.10.12.1" >>/etc/yp.conf6. 设置/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 /homevi /etc/fstab,使其开机自动挂载
10.10.12.1:/home/home nfs rw,defaults 0 0
========值得注意的一些点========================================================如果服务有异常,可以用 yptest排错
1) 如果ypserv没有启动,在client端执行yptest返回Test 2: ypbindcan't yp_bind: Reason: Domain not bound2) 如果ypbind没有启动,在client端执行yptest返回Test 2: ypbindCan't communicate with ypbind3) 如果在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 ~/ ,完事大吉!!!
以下是网上相关的解决方法:
