NIS(Network Information Service)网络信息服务,主要功能是提供用户登录信息给客户端主机查询之用,用于企业局域网Linux主机账户的集中管理(非跨平台)。NIS服务器在大型企业网络环境可以使用Master/Slave(主控/辅助)架构。

NIS服务器需知

NIS服务器工作原理图

当客户端主机连接NIS服务器时候,Server端会将相关数据提供给客户机,包含以下信息:

  • /etc/passwd 用户账号、UID、GID、家目录位置、shell等信息。
  • /etc/group 群组数据以及GID的对应关系,还有该群组成员。
  • /etc/hosts 主机名与IP的对应关系。
  • /etc/services 每一种服务(守护进程)所对应的端口。
  • /etc/protocols TCP/IP封包协定,如TCP, UDP, ICMP等。
  • /etc/rpc 每种RPC服务所对应的程序号码。
  • /var/yp/ypservers NIS服务器所提供的数据库。

NIS服务器所提供的数据不是传统的文本数据,而是经过NIS服务器将配置文件数据重新编译成读写速度较快的“数据库”文件系统。

NIS Server (master/slave)运作流程:

1、NIS Master将本地系统账户信息制作成数据库档案;
2、NIS Master会主动通知NIS Slave更新数据;
3、NIS Slave也会主动找NIS Master获取更新后的数据;
4、NIS 服务器帐号信息有变化时候需要重新只做数据库档案,且重新同步Master/Slave。

NIS Client登录时查询流程:

1、NIS Client登录时候会先查询本地/etc/passwd, /etc/shadow等账户档案。
2、本地找不到账号数据开始向NIS网段主机广播查询,NIS服务器不论Master/Slave都会响应,先响应者优先。

所需软件包:

    • yp-tools 提供NIS相关命令查询功能
    • ypbind 提供NIS Client端软件
    • ypserv 提供NIS Server端软件
    • rpcbind rpcbind(老版本叫protmap)是一个管理RPC连接的程序,rpcbind服务对NIS是必须的,因为它是NIS的动态端口分配守护进程,如果rpcbind不启动,NIS也无法运行。

NIS Server端配置

NIS服务器端主要在于提供数据库给客户端作为验证之用,NIS服务器类型有 Master 与 Slave,本文里只是配置了Master 。

服务器端软件包安装

      yum -y install yp-tools ypbind ypserv rpcbind

NIS相关配置文件

      • /etc/ypserv.conf:ypserv主要配置文件,可控制客户端登录权限。
      • /etc/hosts:保存NIS Server/Client用到的网络主机名与IP的对应关系,每一台主机名与IP都需要记录!
      • /etc/sysconfig/network:指定NIS的域名(和 nisdomainname命令实现相同功能)。
      • /var/yp/Makefile:和建立数据库有关的动作配置文件。

NIS相关服务

    • /usr/sbin/ypserv:NIS服务器的主要提供服务。
    • /usr/sbin/rpc.yppasswdd:提供的NIS客户端的用户密码修改服务,开启这个服务,NIS客户端可以直接修改在NIS服务器上的密码。

NIS相关命令

    • /usr/lib64/yp/ypinit:建立数据库的指令,(32位系统:/usr/lib/yp/ypinit)。
    • /usr/bin/yppasswd:NIS客户端操作命令,让用户修改服务器上的密码。

设置NIS的域名

echo 'NISDOMAIN=liebaonis.local' >> /etc/sysconfig/network #设置NIS域名 
echo 'YPSERV_ARGS="-p 1011"' >> /etc/sysconfig/network #设置NIS端口

为了让yppasswdd也使用固定端口,便于防火墙管理:

      sed -i 's/YPPASSWDD_ARGS=/YPPASSWDD_ARGS="--port 1012"/' /etc/sysconfig/yppasswdd

使用命令配置NIS域名的方法,三条命令都可以:

      nisdomainname liebaonis.local
      ypdomainname liebaonis.local
      domainname liebaonis.local

主配置文件 /etc/ypserv.conf

      #NIS服务器大多使用于内部局域网,只要有/etc/hosts即可,不用DNS!
      dns: no
      #预设会有30个数据库被读入内存当中。
      files: 30
      #需不需要将NIS注册到SLP(服务定位协议)
      slp: no
      slp_timeout: 3600
      #与Master/Slave有关,将同步更新的数据库比对所使用的端口,放置于<1024内。
      xfr_check_port: yes
      # 下面是设定限制客户端或Slave Server查询的权限,利用冒号隔成四部分:
      #

主机名/IP:NIS域名:可用数据库名称:安全限制
 

      #

[主机名/IP]

      可以使用 network/netmask 如 192.168.100.0/255.255.255.0
      #

[NIS域名]

      之前设定的NIS域名
      #

[可用数据库名称]

      就是由 NIS 制作出来的数据库名称;
      #

[安全限制]

      包括没有限制(none)、仅能使用<1024端口(port)、拒绝(deny)
      #*                                             :     *          :     shadow.byname : port
      #* : * : passwd.adjunct.byname : port
      vi/etc/ypserv.conf
      屏蔽*开头的几行然后,增加行
      192.168.0.0/16 : *:* : none

设置主机名和IP地址对应关系

      echo "192.168.188.30 nis.liebaonis.local nis" >> /etc/hosts #服务器IP与主机名对应
      echo "192.168.188.101 xx.liebaonis.local xx" >> /etc/hosts #客户机IP与主机名对应

启动NIS所有服务

/etc/init.d/ypserv start
/etc/init.d/yppasswdd start
/etc/rc.d/init.d/rpcbind start
chkconfig --level 35 ypserv on
chkconfig --level 35 yppasswdd on
chkconfig --level 35 rpcbind on

创建用户和建立NIS数据库

为了防止客户端本地用户跟NIS用户冲突,所以创建NIS用户最好将UID设置为2000以上并建立独立的家目录。

mkdir /nishome
useradd -u 2001 -d /nishome/user1 user1 #用户名

echo password | passwd --stdin user1 #密码

将用户信息转换为NIS数据库文件:

/usr/lib64/yp/ypinit -m

At this point, we have to construct a list of the hosts which will run NIS

servers.  localhost.localdomain is in the list of NIS server hosts.  Please continue to add

the names for the other hosts, one per line.  When you are done with the

list, type a <control D>.

next host to add:  nismaster.1987.name    #系统主机名自动提取

next host to add:                         #按Ctrl+D继续

The current list of NIS servers looks like this:

localhost.localdomain

Is this correct?  [y/n: y]  y                     #键入“y”

We need a few minutes to build the databases...

Building /var/yp/1987.name/ypservers...

Running /var/yp/Makefile...

gmake[1]: Entering directory `/var/yp/1987.name'

Updating passwd.byname...

Updating passwd.byuid...

Updating group.byname...

Updating group.bygid...

Updating hosts.byname...

Updating hosts.byaddr...

Updating rpc.byname...

Updating rpc.bynumber...

Updating services.byname...

Updating services.byservicename...

Updating netid.byname...

Updating protocols.bynumber...

Updating protocols.byname...

Updating mail.aliases...

gmake[1]: Leaving directory `/var/yp/1987.name'

localhost.localdomain has been set up as a NIS master server.

Now you can run ypinit -s localhost.localdomain on all slave server.

如果iptables开启需要开放相应的端口。配置数据库后需要重启NIS相关服务。

NIS客户端设置

NIS客户端设置很简单,配置NIS域名之后启动ypbind即可。

客户端软件包安装

yum -y install yp-tools ypbind rpcbind

NIS客户端相关配置文件:

    • /etc/sysconfig/network:保存NIS的域名。
    • /etc/hosts:各个NIS服务器的IP与主机名对应。
    • /etc/yp.conf:这个则是ypbind的主配置文件,里面设定NIS服务器所在。
    • /etc/sysconfig/authconfig:规范账号登入时的允许认证机制。
    • /etc/pam.d/system-auth:因为账号通常由PAM 模块所管理,所以你必须要在PAM模块内加入NIS的支持才行。
    • /etc/nsswitch.conf:规范账号密码与相关信息的查询顺序,默认是先找/etc/passwd再找NIS数据库。

NIS客户端相关命令:

      • /usr/bin/yppasswd:更改在NIS Database(NIS Server的数据库)的密码。
      • /usr/bin/ypchsh:同上,但是是更改 Shell
      • /usr/bin/ypchfn:同上,但是是更改一些用户信息。
      • /usr/sbin/yptest:直接在NIS Client输入yptest即可检查相关的测试数据。
      • /usr/bin/ypwhich -x:显示NIS Client与Server之间沟通的数据库有哪些。
新安装的CentOS 6.4系统执行setup 命令,提示命令找不到
[root@localhost ~]# setup 
-bash: setup: command not found
 
解决方案:安装setup必要的软件包 setuptool
#安装setuptool
[root@localhost ~]# yum install setuptool 

配置NIS客户端

如果手动修改配置文件会相当麻烦,这里使用 setup 命令配置NIS客户端:

1、选择Authentication configuration项回车:

利用 setup 进入 authconfig 认证项目

2、选择 Use NIS 按Next到下一步:

进入 authconfig 之后,选择 NIS 项目

3、填写 NIS 域名 (Domain) 和 NIS 服务器的 IP (Server),按下确定即可:

填写 NIS 域名和 NIS 服务器的 IP

之后系统会打印出以下信息:

Stopping portmap: [ OK ]
Starting portmap:                                          [  OK  ]
Shutting down NIS services:                                [  OK  ]
Turning on allow_ypbind SELinux boolean
Binding to the NIS domain:                                 [  OK  ]

Listening for an NIS domain server.

NIS客户端到这里已经配置完成。

CentOS6.4 上搭建NIS网络信息服务器的更多相关文章

  1. CENTOS6.6上搭建单实例ORACLE12C

    本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn 摘要: 自己在centos6.6上搭建的单实例oracle12c 由 ...

  2. vmware上搭建kickstart 网络安装centos6.2的过程

    前言 什么是PXE? PXE(Pre-boot Execution Environment,预启动执行环境)协议使计算机可以通过网络启动.协议分client和server. PXE client 在网 ...

  3. CentOS6.4上搭建hadoop-2.4.0集群

    公司Commerce Cloud平台上提供申请主机的服务.昨天试了下,申请了3台机器,搭了个hadoop环境.以下是机器的一些配置: emi-centos-6.4-x86_64medium | 6GB ...

  4. centos6.5上搭建gitlab服务器(亲测可用哦)

    最近的版本控制中,git可谓是脱缰的野马,一发不可收拾.当然git的设计模式也是愈发的成熟,让人刮目相看,完美解决了svn上的不足之处.在目前分布式横行的天下,git可谓是占得了一席之地. 废话少说, ...

  5. [证书服务器 第二篇] 基于OpenSSL 在 CentOS6 系统上 搭建自签证书服务,并应用于Web容器

    第一部分:概述 .. 第二部分:环境准备 1 操作系统 CentOS 6.x 2 安装openssl yum install -y openssl 3 安装jdk 从官网下载JDK http://ww ...

  6. CentOS6.3上搭建expect无交互开发环境

    1.背景 在面向shell编程时对于需要交互的场合则必须通过人工来干预,而对于这种方式是违反无人职守的原则:现在expect就解决了这个问题, Expect是一个免费的编程工具语言,用来实现自动和交互 ...

  7. Linux CentOS6.5上搭建环境遇到的问题

    1.卸载CentOS自带的JDK 查看centos上 安装的jdk:rpm -qa|grep jdk 出现如下: java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86 ...

  8. 【linux轻松学】centos6.5上搭建svn服务器

    今天花了一下午,把svn环境搭好了,写篇文章分享…… 1.安装 先查看是否已经安装,如果有旧版,先删除再安装. 查看rpm -qa subversion 删除yum remove subversion ...

  9. CENTOS6.4上KVM虚拟机环境搭建

    CENTOS6.4上KVM虚拟机环境搭建   关键词: KVM,虚拟机,windows7, VNC, 桥接网络,br0, SCSI, IDE   环境: host: CENTOS6.4 guest: ...

随机推荐

  1. 2017北京赛区J题

    类型:三维动态规划 题目链接 题意: 合并连续石头块,最终要合并成一块,求时间最短,每次只能连续合并L~R块石头,不能合并成一块时输出-1 题解: 利用动态规划解决两种分问题 dp[l][r][k]: ...

  2. vue.js 源代码学习笔记 ----- 工具方法 env

    /* @flow */ /* globals MutationObserver */ import { noop } from 'shared/util' // can we use __proto_ ...

  3. PostgreSQL基于时间点故障恢复PITR( point-in-time recovery )

    PostgreSQL在使用过程中经常会发生一些失误的操作,但往往是可以弥补的.但是如果真遇到了无法挽回的误操作,只能寄希望于有备份了. 接下来的故障恢复也是基于有备份的情况,没有备份的情况,目前还没有 ...

  4. nginx Linux 开启自启

    编辑  /etc/init.d/nginx  添加一下内容   根据路劲修改. 添加可执行权限  chmod +x /etc/init.d/nginx 开启自启  chkconfig nginx on ...

  5. 如何让PPT播放时仅电脑显示备注页,而投影仪不显示

    完全可以!第一步:在电脑上右键点击桌面选择属性,进入显示属性选着设置,点击2号屏(前提已连接投影仪或第2显示器),并且在“将WINDOS桌面扩展到改监视器上”(这个关键)前面打钩,且自主选择分辨率,应 ...

  6. (三) ffmpeg filter学习-编写自己的filter

    目录 目录 什么是ffmpeg filter 如何使用ffmpeg filter 1 将输入的1920x1080缩小到960x540输出 2 为视频添加logo 3 去掉视频的logo 自己写一个过滤 ...

  7. 求二叉树的深度 python

    二叉树有深度和高度两个属性,一个节点的深度指的是从根节点到该节点路径的长度,根节点的深度为1:一个节点的高度指的是从该节点到叶子节点所有路径上包含节点个数的最大值.叶子节点的高度为1,往上节点的高度依 ...

  8. Android 编程 AMapLocationClientOption 类中的 setMockEnable (高德地图 com.amap.api.location.AMapLocationClientOption 中的类)

    setMockEnable 高德地图中 AMapLocationClientOption 中有一个方法是设置APP是否接受模拟定位的设置,就是方法 setMockEnable //设置是否允许模拟位置 ...

  9. c语言第4次作业

    题目7-2九九乘法表 1.代码: #include<stdio.h> int main() { int N, i, j, q; scanf("%d",&N); ...

  10. MySQL 实用技巧

    概述: MySQL有许多实用的技巧,利用这些技巧能提高工作的效率,减少一些不必要的麻烦.以下是几个我在MySQL日常维护从常用的技巧. 一.prompt 命令 功能:设置mysql客户端提示符 说明: ...