NIS是Network Information Services (NIS server)的缩写,是为了管理一个局域网中的用户账号 ,以方便用户在不同的主机上登录时只需要一个账号即可,它将用户的账号保存在一个主机上,用户登录时只需向其发送请求确认账号是否正确。

NIS的工作流程:
NIS与NFS使用的协议相同都是基于远程过程调用(rpc)的,NIS服务器也有主从之分,主要是为了确保负载均衡及作为备用,一般在大型环境下才会将设slave服务器,所以我们现在不考虑它。
NIS的大致工作如下:
1,先将本身账号密码相关的文件制作成数据库。
2,NIS会制动告知slave来更新数据库文件,若账号有变动时,则需重新制作数据库文件。
3,当用户登录时,先查找本机的账号密码文件,如果找不到,则向NIS服务器请求,所以,用户尽量将自己本机的用户密码文件删除掉,以方便NIS服务器的管理。

NIS服务器所能管理的密码文件主要有以下这些:

服务器端文件名 档案内容
/etc/passwd 提供用户账号、UID、GID、家目录所在、Shell 等等
/etc/group 提供群组数据以及 GID 的对应,还有该群组的加入人员
/etc/hosts 主机名与 IP 的对应,常用于 private IP 的主机名对应
/etc/services 每一种服务 (daemons) 所对应的埠口 (port number)
/etc/protocols 基础的 TCP/IP 封包协定,如 TCP, UDP, ICMP 等
/etc/rpc 每种 RPC 服务器所对应的程序号码
/var/yp/ypservers NIS 服务器所提供的数据库

下面开始介绍NIS服务器的搭建:

一,准备工作

两台主机,一个作为服务器端,一个客户端。

服务器端
所需要的软件有:

yp-tools :提供 NIS 相关的查寻指令功能。 ypbind :提供 NIS Client 端的设定软件。 ypserv :提供 NIS Server 端的设定软件。 rpcbind :就是 RPC ,系统一般会安装上。 IP:192.168.2.101,主机名为www.feiyu1.com domain:feiyu 整个内部的信任网域为 192.168.2.0/24 客户端 所需软件: ypbind yp-tools IP:192.168.2.119,主机名为tian.feiyu1.com 二,NIS服务器端的设定与启动

  1. 先设定 NIS 的域名 (NIS domain name)

[root@www ~]# vim /etc/sysconfig/network #加入以下两行数据 NISDOMAIN=feiyu --->设定 NIS 领域名 YPSERV_ARGS="-P 1011" ----->端口是像rpc注册的,设定 NIS 每次都启动在固定的端口,以方便iptables管理 2. 设置配置文件 /etc/ypserv.conf [root@www ~]# grep -v '#' /etc/ypserv.conf dns: no #是否启用dns,局域网中不需要 files: 30 #最大数据库文件限制为30 xfr_check_port: yes #开启传送数据,为了配合slave的同步 #底下则是设定限制客户端或 slave server 查询的权限,利用冒号隔成四部分: [主机名/IP] : [NIS域名] : [可用数据库名称] : [安全限制] * : * : shadow.byname : port * : * : passwd.adjunct.byname : port 一般来说可以不用设置.

  1. 设定主机名与 IP 的对应 (/etc/hosts)

[root@www ~]# vim /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.2.101 www.feiyu1.com 192.168.2.119 tian.feiyu1.com 4,启动服务 [root@www ~]# yum install -y yp-tools ypbind ypserv rpcbind #安装所需的软件 [root@www lib]# rpm -ql ypserv #查看所生成的文件 /etc/rc.d/init.d/yppasswdd ----> /etc/rc.d/init.d/ypserv ---->所需的服务 /etc/rc.d/init.d/ypxfrd /etc/sysconfig/yppasswdd ---->配置文件 /etc/ypserv.conf ----->主配置文件 /usr/include/rpcsvc/ypxfrd.x /usr/lib/yp /usr/lib/yp/create_printcap /usr/lib/yp/makedbm /usr/lib/yp/match_printcap /usr/lib/yp/mknetid /usr/lib/yp/pwupdate /usr/lib/yp/revnetgroup /usr/lib/yp/yphelper /usr/lib/yp/ypinit /usr/lib/yp/ypxfr /usr/lib/yp/ypxfr_1perday /usr/lib/yp/ypxfr_1perhour /usr/lib/yp/ypxfr_2perday /usr/sbin/rpc.yppasswdd /usr/sbin/rpc.ypxfrd /usr/sbin/yppush /usr/sbin/ypserv /usr/share/doc/ypserv-2.19 /usr/share/doc/ypserv-2.19/AUTHORS /usr/share/doc/ypserv-2.19/COPYING /usr/share/doc/ypserv-2.19/ChangeLog /usr/share/doc/ypserv-2.19/INSTALL /usr/share/doc/ypserv-2.19/NEWS /usr/share/doc/ypserv-2.19/README /usr/share/doc/ypserv-2.19/README.etc /usr/share/doc/ypserv-2.19/TODO /usr/share/doc/ypserv-2.19/locale /usr/share/doc/ypserv-2.19/netgroup /usr/share/doc/ypserv-2.19/netmasks /usr/share/doc/ypserv-2.19/securenets /usr/share/doc/ypserv-2.19/timezone /usr/share/doc/ypserv-2.19/ypserv.conf /usr/share/man/man5/netgroup.5.gz /usr/share/man/man5/ypserv.conf.5.gz /usr/share/man/man8/makedbm.8.gz /usr/share/man/man8/mknetid.8.gz /usr/share/man/man8/pwupdate.8.gz /usr/share/man/man8/revnetgroup.8.gz /usr/share/man/man8/rpc.yppasswdd.8.gz /usr/share/man/man8/rpc.ypxfrd.8.gz /usr/share/man/man8/yphelper.8.gz /usr/share/man/man8/ypinit.8.gz /usr/share/man/man8/yppasswdd.8.gz /usr/share/man/man8/yppush.8.gz /usr/share/man/man8/ypserv.8.gz /usr/share/man/man8/ypxfr.8.gz /usr/share/man/man8/ypxfrd.8.gz /var/yp /var/yp/Makefile [root@www lib]# rpm -ql yp-tools #yp-tools软件包 /usr/bin/ypcat ---->下面都为一些命令 /usr/bin/ypchfn /usr/bin/ypchsh /usr/bin/ypmatch /usr/bin/yppasswd /usr/bin/ypwhich /usr/sbin/yppoll /usr/sbin/ypserv_test /usr/sbin/ypset /usr/sbin/yptest /usr/share/doc/yp-tools-2.9 /usr/share/doc/yp-tools-2.9/AUTHORS /usr/share/doc/yp-tools-2.9/COPYING /usr/share/doc/yp-tools-2.9/ChangeLog /usr/share/doc/yp-tools-2.9/NEWS /usr/share/doc/yp-tools-2.9/README /usr/share/doc/yp-tools-2.9/THANKS /usr/share/doc/yp-tools-2.9/TODO /usr/share/doc/yp-tools-2.9/nsswitch.conf /usr/share/locale/de/LC_MESSAGES/yp-tools.mo /usr/share/man/man1/ypcat.1.gz /usr/share/man/man1/ypchfn.1.gz /usr/share/man/man1/ypchsh.1.gz /usr/share/man/man1/ypmatch.1.gz /usr/share/man/man1/yppasswd.1.gz /usr/share/man/man1/ypwhich.1.gz /usr/share/man/man5/nicknames.5.gz /usr/share/man/man8/yppoll.8.gz /usr/share/man/man8/ypset.8.gz /usr/share/man/man8/yptest.8.gz /var/yp /var/yp/nicknames [root@www ~]# vim /etc/sysconfig/yppasswdd YPPASSWDD_ARGS="--port 1012" --->找到这个设定值,修改一下内容成这样! [root@www ~]# /etc/init.d/ypserv start ----->使用此句可能会出现以下错误 Setting NIS domain name feiyu: [ OK ] Starting YP server services: /usr/sbin/ypserv: invalid option -- 'P' usage: ypserv [-d [path]] [-p port] [-i interface] ypserv --version [FAILED] 根据提示应该这么用: [root@www ~]# ypserv -p 1011 start [root@www ~]# /etc/init.d/yppasswdd start [root@www ~]# chkconfig ypserv on [root@www ~]# chkconfig yppasswdd on

主要的 NIS 服务是 ypserv ,yppasswdd提供 NIS 客户端的密码修改功能, 所以还是得要启动 yppasswdd 这个服务。

[root@www lib]# rpcinfo -p localhost program vers proto port service 100000 4 tcp 111 portmapper 100000 3 tcp 111 portmapper 100000 2 tcp 111 portmapper 100000 4 udp 111 portmapper 100000 3 udp 111 portmapper 100000 2 udp 111 portmapper 100004 2 udp 1011 ypserv 100004 1 udp 1011 ypserv 100004 2 tcp 1011 ypserv 100004 1 tcp 1011 ypserv 100009 1 udp 1012 yppasswdd 5. 处理账号并建立数据库 [root@www ~]# useradd -u 1001 feiyu1 [root@www ~]# useradd -u 1002 feiyu2 [root@www ~]# useradd -u 1003 feiyu3 [root@www ~]# echo 123 | passwd --stdin feiyu1

[root@www lib]# /usr/lib/yp/ypinit -m #将文件制作成数据库,64 为的系统使用/usr/lib64/yp/ypinit -m

At this point, we have to construct a list of the hosts which will run NIS
servers. www.feiyu1.com 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 .
next host to add: www.feiyu1.com
next host to add: <==这个地方按下 [crtl]-d
The current list of NIS servers looks like this:

www.feiyu1.com

Is this correct? [y/n: y] y
We need a few minutes to build the databases…
Building /var/yp/feiyu/ypservers…
Running /var/yp/Makefile…
gmake[1]: Entering directory /var/yp/feiyu' 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/feiyu’

www.feiyu1.com has been set up as a NIS master server.

Now you can run ypinit -s www.feiyu1.com on all slave server.

三,NIS Client 端的设定

1.下载所需的软件

[root@www ~]# yum install -y yp-tools ypbind 一些配置文件及命令的说明; /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 数据库;

/usr/bin/yppasswd :更改你在 NIS database (NIS Server 所制作的数据库) 的密码
/usr/bin/ypchsh :同上,但是是更改 shell
/usr/bin/ypchfn :同上,但是是更改一些用户的讯息!

2.客户端的一些设定
主要为NIS域的设定及一些认证选项,使用如下命令就能简单的设定。

[root@www ~]# setup

选择 Authentication configuration -----> [ * ] Use NIS ----> next ----> 设置Domain: feiyu Server:192.168.2.101 ---->ok -------> quit

设置完毕后,如果系统很快的就跳回第一个画面, 代表你的设定理论上是没有问题的。否则,你就需要再检查下设定的值有没有问题。

设置完后,它会修改以下几个而配置文件,可以自己看看:

[root@www ~]# cat /etc/sysconfig/network [root@www ~]# cat /etc/yp.conf [root@clientlinux ~]# vim /etc/nsswitch.conf 3,使用客户端命令yptest, ypwhich, ypcat进行进行检验,怎么检验呢?一个很简单的办法就是检查本机能否使用客户端的用户 [root@localhost ~]# id feiyu1 uid=1001(feiyu1) gid=1001(feiyu1) groups=1001(feiyu1) [root@localhost ~]# id feiyu2 uid=1002(feiyu2) gid=1002(feiyu2) groups=1002(feiyu2) [root@localhost ~]# id feiyu3 uid=1003(feiyu3) gid=1003(feiyu3) groups=1003(feiyu3) ------->以上用户在客户端都存在 [root@localhost ~]# yptest ------>使用 yptest 检验数据库 Test 1: domainname Configured domainname is "feiyu"

Test 2: ypbind
Used NIS server: www.feiyu1.com

Test 3: yp_match
WARNING: No such key in map (Map passwd.byname, key nobody)

Test 4: yp_first
user user:111ATBAGnI8$dCKbB4kM2Sb3AkqqSqJNY/:501:501::/home/user:/bin/bash

Test 5: yp_next
feiyu3 feiyu3:111vAbrhKiC$TBzwAA2ZAIqNgr35WQXF2/:1003:1003::/home/feiyu3:/bin/bash
feiyu2 feiyu2:111oBnEJGKH$QnPweGSHgEBDp8To1LKT5/:1002:1002::/home/feiyu2:/bin/bash
feiyu1 feiyu1:111P5ETH99s$mCE/4YVEYS7c/5oy17xIM0:1001:1001::/home/feiyu1:/bin/bash
centos centos:111aFk7O//F$HEa19AWyfeWTcHZA8CXdL.:500:500:centos:/home/centos:/bin/bash

Test 6: yp_master
www.feiyu1.com

Test 7: yp_order
1430912603

Test 8: yp_maplist
mail.aliases
rpc.byname
hosts.byname
protocols.bynumber
ypservers
group.byname
group.bygid
services.byname
netid.byname
services.byservicename
passwd.byname
protocols.byname
hosts.byaddr
passwd.byuid
rpc.bynumber

Test 9: yp_all
user user:111ATBAGnI8$dCKbB4kM2Sb3AkqqSqJNY/:501:501::/home/user:/bin/bash
feiyu3 feiyu3:111vAbrhKiC$TBzwAA2ZAIqNgr35WQXF2/:1003:1003::/home/feiyu3:/bin/bash
feiyu2 feiyu2:111oBnEJGKH$QnPweGSHgEBDp8To1LKT5/:1002:1002::/home/feiyu2:/bin/bash
feiyu1 feiyu1:111P5ETH99s$mCE/4YVEYS7c/5oy17xIM0:1001:1001::/home/feiyu1:/bin/bash
centos centos:111aFk7O//F$HEa19AWyfeWTcHZA8CXdL.:500:500:centos:/home/centos:/bin/bash
1 tests failed ---->只有一个测试失败,这个不重要


[root@localhost ~]# ypwhich -x ---->ypwhich 检验数据库数量
Use “ethers” for map “ethers.byname”
Use “aliases” for map “mail.aliases”
Use “services” for map “services.byname”
Use “protocols” for map “protocols.bynumber”
Use “hosts” for map “hosts.byname”
Use “networks” for map “networks.byaddr”
Use “group” for map “group.byname”
Use “passwd” for map “passwd.byname”


[root@localhost yp]# ypcat passwd.byname ----->利用 ypcat 读取数据库内容
user:111ATBAGnI8$dCKbB4kM2Sb3AkqqSqJNY/:501:501::/home/user:/bin/bash
feiyu3:111vAbrhKiC$TBzwAA2ZAIqNgr35WQXF2/:1003:1003::/home/feiyu3:/bin/bash
feiyu2:111oBnEJGKH$QnPweGSHgEBDp8To1LKT5/:1002:1002::/home/feiyu2:/bin/bash
feiyu1:111P5ETH99s$mCE/4YVEYS7c/5oy17xIM0:1001:1001::/home/feiyu1:/bin/bash
centos:111aFk7O//F$HEa19AWyfeWTcHZA8CXdL.:500:500:centos:/home/centos:/bin/bash

此命令也可以在服务器端用,但要指定服务器:

[root@www feiyu]# ypcat -h 192.168.2.101 passwd.byname 也可以使用以下命令在客户端进行修改: yppasswd :与 passwd 指令相同功能; ypchfn :与 chfn 相同功能; ypchsh :与 chsh 相同功能。

Centos7 配置NIS服务器相关推荐

  1. centos7配置web服务器

    centos7配置web服务器 准备 环境: ​ VMware Workstation Pro ​ Linux/CentOS-7-x86_64-DVD-2009.iso ​ 安装省略(有手就行) 配置 ...

  2. 2021-04-20 #CentOS7配置sftp服务器操作日志#

    #CentOS7配置sftp服务器操作日志# 1.编辑/etc/ssh/sshd_config配置文件 注释Subsystem sftp /usr/libexec/openssh/sftp-serve ...

  3. Centos7 配置pppoe服务器

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.配置网络环境,采用DHCP进行桥接自己的网卡: 二.检查并配置ppp软件 三.配置pppoe服务器 四,客户机上外 ...

  4. Centos7 配置DHCP服务器,电脑可以获取IP,手机却无法获取IP

    环境介绍: 1.系统环境: 在内网ESXI虚拟化上有一台Centos7,搭建了两台DHCP服务器,分别为"内部-WIFI"和"公共-WIFI"提供IP地址分配. ...

  5. centos7 配置http服务器

    2021-1-20 Hyp 1.安装 http,使用命令 yum install -y httpd 2.重启http服务 关闭服务 httpd service stop 启动服务 httpd serv ...

  6. rhel 5.3 nis 服务器搭建 详细(原创)

    RHEL 5.3 NIS 服务搭建 #1.about NIS NIS NIS (Network Information Service)网络信息服务,类似于windows AD.简单说就是客户端登陆验 ...

  7. 在Centos7中配置NIS的详细过程

    在Centos7中配置NIS的详细过程 原理 NIS(Network Information Service) 在有多台linux服务器的环境中,且一台linux服务器的账号又有很多且可能会相同,所以 ...

  8. Linux下如何实现用户的集中管理(NIS服务器的高级配置)

    Linux下如何实现用户的集中管理 (NIS服务器的高级配置)   一.NIS服务器的属性设置   1.修改NIS系统的主机名 Linux系统可以使用hostname命令查看和临时设置Linux系统的 ...

  9. NIS 服务器的配置

    实验拓扑图 SERVER(192.168.1.11)----------CLIENT(192.168.1.12) 实验前的准备: 由于NIS服务需要portmap,time,time-udp的支持,所 ...

最新文章

  1. SAP MM 模块调研问卷样例
  2. 扩展Ext2类 Extending Ext2 Class
  3. 福州大学计算机专业考研,2015年福州大学计算机考研经验贴
  4. 【BZOJ5249】【九省联考2018】—IIIDX(线段树)
  5. wordpress发布文章错误:此响应不是合法的JSON响应
  6. 《Web性能实践日志》一1.5 浏览器的发展
  7. Eclipse没有Web插件和JavaEE插件咋整
  8. 通达信实现自动交易系统
  9. 安卓课设:翻译君APP(附开源地址)
  10. SIFT/SURF算法
  11. freeMarker(四)——模板开发指南之模板
  12. cad画固定长度的弧线_CAD中如何绘制指定弧长的圆弧
  13. 《史蒂夫乔布斯传》部分读书摘录
  14. drupal 7 ajax,【漏洞分析】CVE-2018-7600 Drupal 7.x 版本代码执行
  15. Unity实现功能之局域网实时语音
  16. 传感器连接mysql_获取传感器数据并传入数据库-HTTP/POST/ASP.NET
  17. c++程序设计报告总结
  18. VS运行错误提示:未处理的异常0xC000 0005
  19. Blog选址,可实现通过xml-rpc标准进行远程离线发布的Blog服务商(BSP)测评
  20. df_1.columns

热门文章

  1. 51单片机DS18B20温度传感器原理及实验
  2. 【精选】JAVA算法题(十六)
  3. Vue的Dom树的理解
  4. JAVA入门算法题(十)
  5. 京准讲述北斗授时产品(NTP时钟服务器)应用及原理
  6. 消除 a标签 点击后边框
  7. Can't bind to 'ngModel' since it isn't a known property of 'pl-select'.
  8. java游戏优化_用 JAVA 开发游戏连连看(之六)优化:让程序运行更稳定、更高...
  9. 网络工程师(软考)学习笔记1--计算机网络简介及分类
  10. perl使用学习(全程更新)