设置和配置 YPServ Linux NIS 服务器和客户端

举报
Tiamo_T 发表于 2022/05/24 10:14:10 2022/05/24
【摘要】 NIS 代表网络信息服务。 NIS 也称为 YP。YP 代表黄页。

NIS 代表网络信息服务。

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

NIS 是一组数据库的查找服务。这种情况下的数据库可以是 passwd 文件、组文件、hosts 文件等。这主要用作保存所有用户名和密码的中央存储库(即 /etc/passwd),不同的服务器可以针对此服务器进行身份验证用户名和密码。

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

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

YPServ 代表黄页服务器。

如果已配置 NIS 服务器,并且您只是尝试将 Linux 服务器连接到现有 NIS 服务器,请跳至下面的“配置 NIS 客户端”部分。

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


NIS 服务器配置

1.验证端口映射

端口映射服务器将 DARPA 端口映射到 RPC 程序号。对于发出 RPC 调用以与 NIS 服务器(即 RPC 服务器)对话的 NIS 客户端,端口映射器应该正在运行。

当 NIS 服务器启动时,它会通知端口映射器它正在侦听的端口。当 NIS 客户端联系 NIS 服务器时,它将首先检查端口映射器并获取 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 发行版的典型安装方法(例如:apt-get、yum 或 up2date 等)在您的服务器上安装 ypserv。

如果您想从源代码安装它,请下载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 是否已注册到 portmap,如下所示。

# 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=hgst.com.cn

如下所示启动 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, one 
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 on all slave server.

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

# ls -l /var/yp
total 44
drwxr-xr-x 2 root root  4096 Oct  8 10:59 hgst.com.cn
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
No such map passwd.byname. Reason: Can't bind to server which serves this domain

您可能会收到上述错误消息,因为 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 命令只会在 passwd 文件中显示一个“x”。

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

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

# cd /var/yp
# make

我建议您将其添加到 NIS 服务器上的根 cron 作业中,以每 15 分钟执行一次。这样,您不必担心在对 NIS 数据库进行一些更改时手动运行它。

NIS 客户端配置

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

6.在客户端设置域名

验证此服务器上的域名设置是否正确。如果这没有返回正确的域名。执行 'domainname {your-domain}' 在服务器上设置域名。

# domainname
hgst.com.cn

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

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

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
No such map passwd.byname. Reason: Can't bind to server which serves this domain

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

# service ypbind start 

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

华为开发者空间发布

让每位开发者拥有一台云主机

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。