≡菜单

如何设置和配置YPServ Linux NIS Server和客户端

NIS代表网络信息服务。

NIS也称为YP。 YP代表黄页。

NIS是针对数据库集的查找服务。在这种情况下,数据库可以是passwd文件,组文件,主机文件等。它主要用作存放所有用户名和密码(即/ etc / passwd)的中央存储库,并且不同的服务器可以针对该服务器进行身份验证,以用于用户名和密码。

这对于必须管理多个服务器的系统管理员非常有帮助。无需为每台Linux服务器上的用户创建用户帐户,您只需在配置为运行NIS服务器的一台服务器上创建帐户即可。可以将所有其他服务器配置为NIS客户端,它将根据该中央NIS服务器存储库进行身份验证。

这是一个分步教程,介绍了ypserv NIS服务器和客户端的安装和配置。

YPServ代表黄页服务器。

如果已经配置了NIS服务器,而您只是想将Linux服务器连接到现有的NIS服务器,请跳至“Configre NIS Client” section below.

如果要同时安装和配置NIS服务器和客户端,请从下面的第一步开始。

NIS服务器配置

1.验证端口图

Portmap服务器将DARPA端口映射到RPC程序号。对于进行RPC调用以与NIS服务器(这是RPC服务器)进行通信的NIS客户端,应该运行portmapper。

NIS服务器启动时,它将通知端口映射器正在监听的端口。当NIS客户端联系NIS服务器时,它将首先与portmapper核对并获取NIS服务器运行所在的端口号,并将RPC调用发送到该端口号。

在大多数Linux发行版中,默认情况下将运行portmap。确保它正在运行,并配置为在重新引导系统时启动。

# ps -ef | grep -i portmap
rpc       3624     1  0 Feb23 ?        00:00:00 portmap
root     16908  8658  0 10:35 pts/0    00:00:00 grep -i portmap

# chkconfig --list | grep portmap
portmap         0:off   1:off   2:off   3:on    4:on    5:on    6:off

2.安装YPServ

使用适用于各自Linux发行版的典型安装方法在服务器上安装ypserv(例如:apt-get,yum或up2date等)。

如果您想从源代码安装它,请下载 ypserv来源.

在redhat系统上,从安装CD中标识ypserv RPM并如下所示使用rpm安装它。

# rpm -ivh ypserv-2.19-5.el5.i386.rpm
Preparing...                ########################################### [100%]
   1:ypserv                 ########################################### [100%]

ypserv将安装在/ usr / sbin / ypserv下

# whereis ypserv
ypserv: /usr/sbin/ypserv /etc/ypserv.conf /usr/share/man/man8/ypserv.8.gz

3.启动ypserv

检查ypserv是否已向端口映射注册,如下所示。

# rpcinfo -u localhost ypserv
rpcinfo: RPC: Program not registered
program 100004 is not available

以上输出表明尚未安装ypserv或已安装ypserv但尚未启动。以下快速检查表明ypserv尚未启动。

# chkconfig --list | grep yp
ypbind          0:off   1:off   2:off   3:off   4:off   5:off   6:off
yppasswdd       0:off   1:off   2:off   3:off   4:off   5:off   6:off
ypserv          0:off   1:off   2:off   3:off   4:off   5:off   6:off
ypxfrd          0:off   1:off   2:off   3:off   4:off   5:off   6:off

# service ypserv status
ypserv is stopped

如下所示,在/ etc / sysconfig / network文件中设置NISDOMAIN。

# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=prod-db
GATEWAY=192.168.1.1
NISDOMAIN=thegeekstuff.com

如下所示启动ypserv。

# service ypserv start
Setting NIS domain name thegeekstuff.com: [  OK  ]
Starting YP server services:              [  OK  ]

在/etc/ypserv.conf文件中设置了一些NIS服务器配置参数。但是,你不’无需修改此文件中的默认值。

4.生成NIS数据库

安装并启动ypserv之后,就可以生成NIS数据库了。所有NIS数据库都存储在/ var / yp目录下。在生成数据库之前,您将不会在/ var / yp下看到域名目录。

# ls -l /var/yp
total 36
drwxr-xr-x 2 root root  4096 May 18  2010 binding
-rw-r--r-- 1 root root 16669 Oct 31 2008年 Makefile
-rw-r--r-- 1 root root   185 Jun  6  2007 nicknames

如下所示,使用ypinit程序生成NIS数据库。您只需输入NIS服务器的主机名即可生成数据库。

#/ usr / lib / yp / ypinit -m

Please continue to add the names for the other hosts, 上 e 
per line.  When you are done with the list, type a .
        next host to add:  prod-db
        next host to add: 

The current list of NIS servers looks like this: prod-db

Is this correct?  [y/n: y]  y
We need a few minutes to build the databases...
Building /var/yp/thegeekstuff.com/ypservers...
Running /var/yp/Makefile...
gmake[1]: Entering directory `/var/yp/thegeekstuff.com'
Updating passwd.byname...
Updating passwd.byuid...
Updating group.byname...
Updating group.bygid...
Updating hosts.byname...
Updating hosts.byaddr...
...
gmake[1]: Leaving directory `/var/yp/thegeekstuff.com'

prod-db has been set up as a NIS master server.

Now you can run ypinit -s prod-db 上  all slave server.

生成数据库后,您可以看到在/ var / yp下为您的域创建了一个新目录,如下所示。

# ls -l /var/yp
total 44
drwxr-xr-x 2 root root  4096 Oct  8 10:59 thegeekstuff.com
drwxr-xr-x 2 root root  4096 May 18  2010 binding
-rw-r--r-- 1 root root 16669 Oct 31 2008年 Makefile
-rw-r--r-- 1 root root   185 Jun  6  2007 nicknames
-rw-r--r-- 1 root root    10 Aug 31 10:58 ypservers

/ var / yp / ypservers将包含您的NIS服务器主机名。

# cat /var/yp/ypservers
prod-db

5.验证安装

通过检查是否可以使用ypcat NIS客户端程序访问passwd文件来验证NIS服务器的安装。

#ypcat passwd
没有这样的映射passwd.byname。原因:可以't绑定到服务于该域的服务器 

您可能会收到上述错误消息,因为ypbind可能未在您的系统上运行。只需启动ypbind并验证配置即可。

# service ypbind start

# ypcat passwd
ramesh:R7EFEGJ1mxRGwVLVC.:401:401::/home/ramesh:/bin/bash
john:QtlRW$Fx.uZvD:402:402::/home/john:/bin/bash

如果你不这样做’要想在ypcat passwd输出中显示加密的passwd字段,请在/ var / yp / Makefile中将MERGE_PASSWD设置为false,如下所示。

# vi /var/yp/Makefile
MERGE_PASSWD=false

完成上述操作后,ypcat passwd命令将仅显示一个‘x’ in the passwd file.

#ypcat passwd
ramesh:x:401:401::/home/ramesh:/bin/bash
john:x:402:402::/home/john:/bin/bash

随时进行更改(更新Makefile或更改数据库)。例如,当您添加新用户或修改现有用户帐户时,应执行以下操作。否则,所做的更改将不会反映到您的任何NIS客户端。

# cd /var/yp
# make

我建议您将此添加到 根cron工作 在您的NIS服务器上每15分钟执行一次。这样,你不’您无需担心在您对NIS数据库进行任何更改时就手动运行此操作。

NIS客户端配置

需要在NIS客户端上执行以下步骤。在上面的示例中,我们在名为prod-db的服务器名称上安装了NIS服务器。如果要另一个Linux服务器dev-db使用prod-db上的/ etc / passwd文件进行身份验证,则需要在dev-db服务器(NIS客户端)上执行以下步骤。

6.在客户端上设置域名

验证在此服务器上正确设置了域名。如果没有’返回正确的域名。执行‘域名{您的域}’在服务器上设置域名。

# domainname
thegeekstuff.com

domainname命令将临时设置域名。即,如果您重新启动系统,则域名将消失。要使域名永久使用,请更新网络文件并设置NISDOMAIN参数,如下所示。

# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=dev-db
GATEWAY=192.168.1.4
NISDOMAIN=thegeekstuff.com

7.在客户端上设置NIS服务器名称

将以下行添加到/etc/yp.conf文件。这指示NIS客户端NIS服务器是prod-db。除了下面的prod-db外,您还可以提供prod-db服务器的ip地址。

# vi /etc/yp.conf
domain thegeekstuff.com server prod-db

8.在客户端上启动ypbind

ypbind是NIS绑定程序。这将为您的NIS域搜索NIS服务器,并维护NIS绑定信息。

确保ypbind已启动并在NIS客户端服务器上运行。大多数Linux发行版已经安装了ypbind。如果它没有运行,请启动它。

# ps -ef | grep ypbind

# service ypbind start

通过检查是否可以使用ypcat NIS客户端程序访问passwd文件来验证NIS服务器的安装。

#ypcat passwd
没有这样的映射passwd.byname。原因:可以't绑定到服务于该域的服务器 

您可能会收到上述错误消息,因为ypbind可能未在您的系统上运行。只需启动ypbind并验证配置即可。

# service ypbind start

# ypcat passwd
ramesh:x.:401:401::/home/ramesh:/bin/bash
john:x:402:402::/home/john:/bin/bash

如果您喜欢这篇文章,您可能还会喜欢..

  1. 50个Linux Sysadmin教程
  2. 50个最常用的Linux命令(包括示例)
  3. 排名前25位的最佳Linux性能监视和调试工具
  4. 妈妈,我找到了! – 15个实用的Linux Find命令示例
  5. Linux 101 Hacks第二版电子书 Linux 101黑客手册

Bash 101 Hacks书 Sed和Awk 101黑客手册 Nagios Core 3书 Vim 101黑客手册

{ 17 评论… 加一 }

  • Medhat 2011年11月30日,下午1:17

    谢谢你的简短介绍。我一定会从中丢失一些东西。是指NIS服务器将本质上将其自己的/ etc / passwd和/ etc / group的内容提供给网络,还是从运行该服务器的服务器拥有自己的独立数据库?
    另外,客户端是否严格限制了NIS中的内容,或者它基本上是针对NIS进行身份验证的“union” of the LIS and what’有自己的密码和组?如果发生冲突怎么办?
    最后,为了选择域(以避免冲突)NIS服务器,我希望不要尝试自己接管DNS功能。可以?

  • j 2011年11月30日,晚上10:26

    做得好。完美记录。如果您可以记下配置NIS +,LDAP以及NIS,NIS +和LDAP之间的区别的步骤,那就太好了。
    你摇滚!

  • j 2011年12月4日,晚上9:50

    另外,是否有任何特定的SELINUX规则允许ypbind启动?

    [root @ lg〜]#ypcat passwd
    没有这样的映射passwd.byname。原因:可以’t绑定到服务于该域的服务器

    [root @ lg yp]#服务ypbind启动
    启动NIS服务:[确定]
    绑定NIS服务:………………….. [失败]
    关闭NIS服务:[确定]

    我已经配置了静态IP并清除了iptables和ip6tables,默认的链策略规则为ACCEPT。所以,不应该’iptables会阻止ypbind启动。

    日志显示:
    12月5日08:45:47 linuxgenius setsebool:root用户将allow_ypbind策略布尔值更改为1
    12月5日08:45:47 linuxgenius dbus:[系统]重新加载配置
    12月5日08:46:32 linuxgenius ypbind:域thegeekstuff.com的NIS服务器未响应。

    我认为它’SELINUX政策问题。有什么想法吗?

  • 巴拉 2013年1月20日,晚上9:06

    你好

    Evan和Soj遇到了相同的错误。

    [root @ lg yp]#服务ypbind启动
    启动NIS服务:[确定]
    绑定NIS服务:………………….. [FAILED]
    关闭NIS服务:[确定]

  • o 2013年1月29日,晚上8:20

    嗨,巴拉

    你这样做了吗? -->/ usr / lib / yp / ypinit -m
    ‘yp’ is in the lib???
    如果没有,那就这样
    ———————————————————————————–
    [root @ yiheo Desktop]#/ usr / lib<-press the tab key
    lib / lib64 / libexec /
    ———————————————————————————–
    其他lib是lib64,也许yp在lib64中
    只是我的方式

  • 萨尔曼 2013年2月14日,晚上8:25

    嗨,大家好。
    启动ypcat passwd时需要帮助
    我遇到了与您上面提到的相同的错误,
    而且当我运行
    服务ypbind在客户端启动
    对systemctl的farword请求禁用sssd.service
    发生此错误
    请帮我
    我尝试了近20次但是失败了
    尝试以其他样式运行此命令

  • 大卫·拉米雷斯(David Ramirez) 2013年3月29日,上午10:16

    你好
    很棒的方法,谢谢。我在NIS / YP下有60余台机器,一切正常–除了最新的8个处理器外,唯一的区别是它们拥有该组中最快的处理器…在他们身上,我始终如一:

    do_ypcall:clnt_call:RPC:超时
    do_ypcall:clnt_call:RPC:超时
    do_ypcall:clnt_call:RPC:超时

    日志中的错误(Fedora 17/64)。
    但是,他们的用户显然没有问题–可以登录,工作,访问共享等。

    这似乎与查询主机映射有关,主机映射经常出现。更改nsswitch.conf中的顺序以查找我们的公司DNS首先会导致问题。所以我退回到NIS / YP并继续解决这个问题。
    有任何想法/解决方法建议吗?谢谢。

  • 维杰 2013年12月30日,上午7:04

    大家好,

    我试图在我的Centos-6.4上配置NIS服务器,但几乎可以理解,但是当我启动ypbind时出现如下错误,请指导我进行排序。

    启动NIS服务:[确定]
    绑定NIS服务:………………….. [失败]
    关闭NIS服务:[确定]

  • 贾加德什 2014年1月3日,上午5:05

    请帮助建立错误

    启动NIS服务:[确定]
    绑定NIS服务:………………….. [FAILED]
    关闭NIS服务:[确定]

    救命

  • 打字员 2014年1月14日,上午7:21

    你好
    绑定NIS服务:………………….. [FAILED]

    在yp.conf中放入以下代码:
    ypserver 127.0.0.1

  • 法尼 2014年2月7日,上午8:01

    有没有一种方法可以将sudo访问集成到用于NIS的网络组中?
    如果是这样,怎么做?

  • y 2014年11月21日,上午4:36

    当我安装Nis客户端后,在安装nis客户端后,当我通过命令重新启动ypbind时,我遇到了问题:service ypbind restart,有一个错误:ypbindproc_domain域未绑定。重新启动后我的机器无法工作。
    请帮我。
    十分感谢。

  • 萨巴里 2015年2月17日,上午7:22

    嗨,大家好,
    感谢这个博客
    执行此操作时出现错误,请帮助我。
    #ypcat passwd
    没有这样的映射passwd.byname。原因:内部NIS错误。
    请帮忙

  • uch 2015年2月18日,下午12:07

    要修复ypbind失败,我必须在/etc/yp.conf中添加ypserver行。
    例如。
    ypserver blahblah.blah.com
    我认为这是因为服务器设置中的验证步骤要求服务器还充当客户端。

    我做完之后我得到了“没有这样的映射passwd.byname。原因:内部NIS错误。”对于ypcat。为了修复,我不得不停止ypbind重新启动它
    #service ypbind stop
    #服务ypbing启动

  • 萨巴里 2015年2月23日,上午8:17

    谢谢您的支持
    现在我在客户端遇到另一个错误
    在执行yp绑定时发生此错误
    绑定NIS服务:………………….. [FAILED]
    请帮我

  • 2015年9月18日,下午3:40

    我能够通过编辑/etc/ypserv.conf来修复ypbind
    dns:否
    档案:45
    *:*:passwd.byname:无
    *:*:passwd.byuid:无
    *:*:shadow.byname:无
    *:*:passwd.adjunct.byname:无

    并评论其他所有内容

  • 安德鲁·普莱斯 2016年1月20日,上午6:35

    嗨,我按照指示进行操作,它们很棒,但是我仍然在

    ypcat passwd
    没有这样的映射passwd.byname。原因:服务器中没有这样的映射’s domain

    即使尝试更新

发表评论