1  简介

NIS( NetworkInformation Service)提供了一个网络黄页的功能,当用户登录系统时,Linux系统会到NIS主机上去寻找用户使用的帐号密码信息加以比对,以提供用户登录检验。同时NIS服务器还可以提供其他多种信息。

2  深入了解NIS

2.1   基本概念

2.1.1  NIS

在一个大型的网域中,如果有多部Linux主机,而且需要每台主机都设定相同的帐号与密码时,是十分麻烦的。此时,如果能够有一台NIS主控制服务器(master server)来管理该网域中所有主机的帐号密码,当其他的主机有用户登录的需求时,才到这台服务器上请求相关的帐号密码等使用者资料,这样一来,如果想要增加、修改、删除用户的资料,只需要到这台服务器上面处理即可,这样就能够大大降低重复设定用户帐号密码的步骤,便于管理。NIS(Network Information Services) Server就可以实现这样的功能。

2.1.2  NIS服务器端组件结构

NIS的组件结构分为配置文件、主要服务以及相关指令。

NIS服务器主要提供信息如下表:

服务器端文件名

文件内容

/etc/passwd

提供用户帐号、 UID、 GID、家目录所在、登录shell等信息

/etc/group

提供群组信息以及GID的对应,还有该群组成员等信息

/etc/hosts

提供主机名与IP地址的对应关系信息

/etc/services

提供每一种服务( daemons)所对应的端口( port number)信息

/etc/protocols

基础的TCP/IP封包协议,如TCP, UDP, ICMP等

/etc/netgroup

网络群组的定义与使用

/etc/rpc

RPC服务器信息

2.1.2.1     NIS配置文件

NIS服务器端的配置文件如下表所示:

配置文件名

文件内容

/etc/ypserv.conf

关键配置文件,规范NIS客户端登录权限等

/etc/hosts

在其中配置IP地址与主机名对应关系

/etc/netgroup

设定信任主机组

/var/yp/Makefile

与建立资料库有关的配置文件

2.1.2.2     NIS主要服务

NIS服务器端的主要服务如下表所示:

主要服务名

功能

/usr/sbin/ypserv

NIS服务器提供的主要服务

/usr/sbin/rpc.ypxfrd

用来作为master/slave主机之间传输资料库的服务

/usr/sbin/rpc.yppasswdd

通过此服务,NIS客户端登录的用户可以直接修改在NIS服务器上的密码

/var/yp/Makefile

与建立资料库有关的配置文件

2.1.2.3     NIS主要指令

NIS服务器端的主要指令如下表所示:

相关指令名

功能

/usr/sbin/yppush

master主机将资料库直接送至slave主机的指令

/usr/lib/yp/ypinit

建立资料库的指令

/usr/lib/yp/ypxfr

传送资料库的指令

2.1.3  NIS客户端组件结构

NIS的组件结构分为配置文件、相关指令。

2.1.3.1     NIS配置文件

NIS客户端配置文件如下表所示:

配置文件名

文件内容

/etc/hosts

主机名与IP地址对应关系

/etc/yp.conf

ypbind的主要配置文件,设定NIS Server

/etc/nsswitch.conf

重要的配置文件,设定帐号密码等信息

/var/yp/Makefile

与建立资料库有关的配置文件的查询顺序

2.1.3.2     NIS主要指令

NIS客户端的主要指令如下表所示:

相关指令名

功能

/usr/bin/yppasswd

更改客户端登录用户在NIS服务器上的密码

/usr/bin/ypchsh

更改客户端登录用户默认登录shell

/usr/bin/ypchfn

更改客户端登录用户的finger信息

2.2   NIS流程

2.2.1  NIS Server(Master/Slave)

NIS Server包括Master和Slave两类服务器:

Nis Master Server:

将文件建成数据库,并提供给Slave Server来更新;

Nis Slave Server:

以Master Server的数据库作为本身的数据库来源;

流程如下:

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

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

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

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

2.2.2  NIS Client

NIS Client向Master/Slave 请求登陆者的验证数据。

流程如下:

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

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

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

2.3   典型组网

2.3.1  网络拓扑

网络拓扑结构如下图:

2.3.2  系统要求

各个角色应该具备的软件

2.3.2.1     NIS Client要求

NIS 客户端需要安装的组件如下:

软件名称

功能

yp-tools

提供NIS相关的查询指令功能

ypbind

NIS Client端的服务进程(如果)

2.3.2.2     NIS Server要去

NIS 服务器端需要安装的组件如下:(一般情况下,NIS服务器也要起到客户端的作用,所以客户端软件也要安装)

软件名称

功能

yp-tools

提供NIS相关的查询指令功能

ypbind

NIS Client端的服务进程(如果)

ypserv

NIS Server端的服务进程

portmap

提供RPC服务

【NIS】深入了解NIS的更多相关文章

  1. NIS域配置详解

    一.前期准备1.1 NIS 简介NIS,英文的全称是network information service,也叫yellow pages.在Linux中,NIS是一个基于RPC的client/serv ...

  2. centos7搭建NIS与NFS综合应用

    实验环境: centos7(服务端)        redhat enterprise linux 7.2(客户端) 实验目的:用centos7的账号,能在redhat enterprise linu ...

  3. NIS 服务器

    有没有想过,如果我有十部 Linux 主机,这十部主机仅负责不同的功能,事实上, 所有的主机账号与对应的密码都相同!那么我是将账号与密码分别设定置在十部计算机上面, 还是可以透过一部主机做为账号管理的 ...

  4. Nis+Nfs+Autofs

    Nis: NIS服务的应用结构中分为NIS服务器和NIS客户机两种角色 NIS服务器集中维护用户的帐号信息(数据库)供NIS客户机进行查询 用户登录任何一台NIS客户机都会从NIS服务器进行登录认证, ...

  5. nis+kerberos 实现服务验证

    1.NIS部分 1.1 简介     NIS(Network Information Service,or Yellow Page or YP) 网络信息服务,由sun公司开发并授权给unix供应商, ...

  6. NIS & Kerberos配置

    NIS & Kerberos配置 所需RPM包列表: krb5-server-1.10.3-42.el6.x86_64.rpm krb5-workstation-1.10.3-42.el6.x ...

  7. NIS - 深入了解如何搭建NIS环境

    第一篇[NIS]深入了解NIS 1     环境准备 操作系统:CentOS7.2 服务端安装如下软件: 软件名称 功能 ypserv NIS Server端的服务进程 rpcbind 提供RPC服务 ...

  8. CentOS6.4安装辅助NIS的流程

    服务器端软件包安装 yum -y install yp-tools ypbind ypserv rpcbind 设置NIS的域名 echo 'NISDOMAIN=liebaonis.local' &g ...

  9. CentOS6.4 上搭建NIS网络信息服务器

    NIS(Network Information Service)网络信息服务,主要功能是提供用户登录信息给客户端主机查询之用,用于企业局域网Linux主机账户的集中管理(非跨平台).NIS服务器在大型 ...

随机推荐

  1. Android HttpClient自己主动登陆discuz论坛!

    你登陆论坛的时候,我们先看看浏览器干了什么事儿: 用Firefox打开HiPda 的登陆页面,输入用户名和password,点登陆. 以下是通过firebug插件获取的数据: 能够看到浏览器这个htt ...

  2. libconfig C++ 学习笔记

    1. C++API 头文件 #include <libconfig.h++> ,命名空间:using namespace libconfig; 2.多线程使用问题: (1)libconfi ...

  3. es6之数据结构

    1.set的用法 用add方法添加元素,添加的数组不可重复. 可利用set类型添加元素不重复的功能,给数组完成去重的功能 size属性用于获取set元素的长度 { let list =new Set( ...

  4. ASP.NET CORE MVC 2.0 如何在Filter中使用依赖注入来读取AppSettings,及.NET Core控制台项目中读取AppSettings

    问: ASP.NET CORE MVC 如何在Filter中使用依赖注入来读取AppSettings 答: Dependency injection is possible in filters as ...

  5. 微信小程序,搜索结果关键词高亮 wxml不能动态识别html标签

    wxml中使用rich-text标签放置动态html标签 js:

  6. iOS | 解决中文乱码

    在iOS开发中,多多少少的朋友在开发的过程中,测试数据的时候可能会碰到后台打印的时候不能正确的打印出正常的汉字,打印出一些影响判断的字符,经常需要查看数组中得元素是否是自己想要的,但是苹果并没有对直接 ...

  7. 快速排序_c++

    快速排序_c++ GitHub 文解 快速排序正如其名,是一种排序速度较快的排序算法. 其核心思想: 取数组的第一个数,确定其在整个数组中的位置. 以刚刚的数值所确定的位置经数组分为两个部分. 再分别 ...

  8. Swift_函数

    Swift_函数 点击查看源码 定义和调用函数 //定义和调用函数 func testDefiningAndCallingFunctions() { func sayHello(_ personNam ...

  9. 技巧:Vimdiff 使用(改)

    技巧:Vimdiff 使用(改) 各种 IDE 大行其道的同时,传统的命令行工具以其短小精悍,随手可得的特点仍有很大的生存空间,这篇短文介绍了一个文本比较和合并的小工具:vimdiff.希望能对在 U ...

  10. Vuex的第一次接触

    前言:最近在做Vue实现去哪网,想要实现在城市列表页面,点击某个城市的时候,主页的头部的城市会随着改变,就是首页和城市页面有共用的数据要分享,这里使用Vuex 1. Vuex是什么? 是Vue官方推荐 ...