LDAP学习笔记之四:NIS简解

简介: LDAP学习笔记之四:NIS简解

一、简介

1NIS的产生

1

2

3

4

5

6

正所谓有需求才会有产品,有问题才会有方法去解决,那么NIS是怎么产生的呢?

 

在一个大型的网域中,如果有多部Linux主机,而且需要每台主机都设定相同的帐号与密码时,是十分麻烦的。

此时,如果能够有一台NIS主控制服务器(master server)来管理该网域中所有主机的帐号密码,

当其他的主机有用户登录的需求时,才到这台服务器上请求相关的帐号密码等使用者资料,这样一来,如果想要增加、修改、删除用户的资料,

只需要到这台服务器上面处理即可,这样就能够大大降低重复设定用户帐号密码的步骤,便于管理。NIS(Network Information Services) Server就可以实现这样的功能。

2什么是NIS

1

2

3

网络信息服务(Network Information Service)是集中控制几个系统管理数据库的网络用品。NIS简化了UNIX和LINUX桌面客户的管理工作,

客户端利用它可以使用中心服务器的管理文件。桌面系统的用户无需建立他们自己的/etc/passwd,他们只简单的使用维护在NIS服务器的文件即可。

用户只需要在nis服务器上面创建,客户端加入nis域,直接可以使用Nis域上的用户来登录客户端。

二、NIS的相关组件

1.服务端

配置文件

主要服务

数据库相关指令

2客户端

配置文件

主要指令

三、NIS环境

1 NIS所需的软件包

1

2

3

4

5

6

7

yp-tools :提供 NIS 相关的查寻指令功能

ypbind :提供 NIS Client 端的设定软件

ypserv :提供 NIS Server 端的设定软件

portmap :这是 RPC必须的软件!

 

相关端口:portmap :111,因为NIS、NFS 都是依赖于portmap服务 6.0/7.0 版本用rpcbind取代portmap服务

相关包:ypserv(NIS服务器必需的),ypbind(NIS客户端必需的,默认已安装),yp-tools(NIS的常用工具,默认已安装)

2 NIS Server (Master/Slave)

1

2

3

4

5

6

7

8

9

10

NIS服务器包括主从服务器两种,从的作用就是备份,即当主服务器出现故障后,从能直接使用

 

主(Master):将文件建成数据库,并提供给Slave来更新;

从(Slave):以Master的数据库作为本身的数据库来源;

 

详细:

1. Master先将帐号密码相关文件制作成数据库文件;

2. Master可以主动告诉Slave来更新;

3. Slave亦可以主动前往Master取得更新;

4.若有帐号密码变动时,需要重新制作数据库文件并重新同步Master/Slave。

3 NIS Client

1

2

3

1.NIS client 若有登入需求时,会先查询其本的 /etc/passwd, /etc/shadow 等档案;

2.若在 NIS Client 本机找不到相关的账号数据,才开始向整个 NIS 网域的主机广播查询.

3.每个 NIS server (不论 master/slave) 都可以响应,基本上是『先响应者优先』。

四、服务器端搭建

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

[root@ldap-server1 ~]# yum -y install ypserv ypbind yp-tools rpcbind #安装ypserv服务相关的包

[root@ldap-server1 ~]# vim /etc/sysconfig/network #设置NIS网络名称

NISDOMAIN=ldap-server1.example.com

[root@ldap-server1 ~]# nisdomainname ldap-server1.example.com  #设置NIS域名

[root@ldap-server1 ~]# vim /etc/rc.d/rc.local  #开机自启

/bin/nisdomainname ldap-server1.example.com

[root@ldap-server1 ~]# vim /etc/ypserv.conf #限制指定网段才能访问

127.0.0.0:*:*:none

192.168.1.0/255.255.255.0:*:*:none

             :*:*:deny 

 

[root@ldap-server1 ~]# systemctl start rpcbind  #启动NIS相关服务

[root@ldap-server1 ~]# systemctl start yppasswdd

[root@ldap-server1 ~]# systemctl start ypserv

[root@ldap-server1 ~]# /usr/lib64/yp/ypinit -m #初始化数据库 再执行“ctrl+D”,再输入y,如果期间有更改NIS服务器的配置文件,则需要重新初始化数据库

[root@ldap-server1 ~]# systemctl restart rpcbind  #初始化数据库后需要重启服务

[root@ldap-server1 ~]# systemctl restart yppasswdd

[root@ldap-server1 ~]# systemctl restart ypserv

[root@ldap-server1 ~]# systemctl enable rpcbind   #开机启动

[root@ldap-server1 ~]# systemctl enable yppasswdd

[root@ldap-server1 ~]# systemctl enable ypserv

五、NIS客户端

1

2

3

4

5

6

7

8

9

10

11

12

13

[root@nis-client ~]# yum -y install ypserv ypbind yp-tools rpcbind #安装ypserv服务相关的包

[root@nis-client ~]# vim /etc/sysconfig/network #设置NIS网络名称

NISDOMAIN=ldap-server1.example.com

[root@nis-client ~]# nisdomainname ldap-server1.example.com  #设置NIS域名

[root@ldap-server1 ~]# vim /etc/rc.d/rc.local  #开机自启

/bin/nisdomainname ldap-server1.example.com

[root@ldap-server1 ~]# vim /etc/hosts  #添加NIS客户端的信息

192.168.1.132 ldap-server1.example.com

192.168.1.133 nis-client.example.com 

[root@nis-client ~]# vim /etc/yp.conf

domain ldap-server1.example.com server ldap-server1.example.com

[root@nis-client ~]# systemctl start rpcbind

[root@nis-client ~]# systemctl start ypbind  

六、验证

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

1.服务端

[root@ldap-server1 ~]# for in {1..9};do useradd nis-user${i};done  #创建测试用户

[root@ldap-server1 ~]# for in {1..9};do echo "123456"|passwd --stdin nis-user${i};done

[root@ldap-server1 ~]# /usr/lib64/yp/ypinit -m #新增用户需要重新初始化数据库

[root@ldap-server1 ~]# systemctl restart rpcbind  #初始化数据库后需要重启服务

[root@ldap-server1 ~]# systemctl restart yppasswdd

[root@ldap-server1 ~]# systemctl restart ypserv

2.客户端

[root@nis-client ~]# yptest

[root@nis-client ~]# getent passwd nis-user1

[root@nis-client ~]# su - nis-user1  #客户端切换进NIS域用户,不能正常显示是因为没有服务器的这三个隐藏文件及用户目录

su: 警告:无法更改到 /home/nis-user1 目录: 没有那个文件或目录

/usr/bin/id: cannot find name for group ID 1001

-bash-4.2$ id

uid=1001(nis-user1) gid=1001 组=1001

 

切换NIS域用户告警问题解决思路  

1

2

3

4

5

6

7

使用NFS将服务端的nishome目录共享出去,在客户端将NFS的服务端共享的目录挂载到本地即可,这里我采用自动挂载

 

1.服务端开启NFS,并共享用户目录,建议调整用户目录,如/nishome,目录权限需要设置其他用户所有权

2.客户端安装autofs包,使用通配符的方式,将服务端的nishome下的用户都挂载到客户端

[root@nis-client ~]# systemctl start autofs

[root@nis-client ~]# vim /etc/auto.nis

*      -fstype=nfs    192.168.1.132:/nishome/& #&会自动根据用户名匹配

七、排查问题思路

1.确保客户机和服务器之间的网络良好

2.确保NIS的配置无误

1

2

3

4

5

检查客户机和服务器所处的NIS域是否一致,可用nisdomainname检查。

检查服务器端的/etc/ypserv.securenets文件中指定可以访问NIS服务的机子是否包含客户机

检查客户机端的/etc/yp.conf文件中指定的NIS服务器是否正确

检查客户机端的/etc/nsswitch.conf文件的配置

如果在服务器和客户机的配置文件中指定彼此的时候使用了对方的主机名,记得检查/etc/hosts中是否包含了对对方主机名的解析。

3.重启服务  

另外:如果上述方法还是行不通的话,可以再试试/bin/systemctl add-wants multi-user.target rpcbind.service[2],然后重启机器  

 

相关文章
|
网络协议 数据安全/隐私保护 Linux
|
4月前
|
监控 安全 关系型数据库
LDAP学习笔记之十:OpenLDAP 主机控制策略
LDAP学习笔记之十:OpenLDAP 主机控制策略
|
4月前
|
Shell 应用服务中间件 开发工具
LDAP学习笔记之八:openLDAP sudo权限
LDAP学习笔记之八:openLDAP sudo权限
|
4月前
|
Linux Shell Apache
LDAP学习笔记之七:Centos7 搭建openldap+图形界面
LDAP学习笔记之七:Centos7 搭建openldap+图形界面
|
4月前
ASA对接 LDAP ,少不了这些关键配置。
ASA对接 LDAP ,少不了这些关键配置。
|
Ubuntu Java Linux
LDAP 常用命令实操
LDAP 常用命令实操
108 0
|
存储 MySQL 关系型数据库
LDAP入门
LDAP入门 首先要先理解什么是LDAP,当时我看了很多解释,也是云里雾里,弄不清楚。在这里给大家稍微捋一捋。 首先LDAP是一种通讯协议,LDAP支持TCP/IP。
1837 0
下一篇
DataWorks