NIS域名

NIS 域就像 Windows 中域控制器的域,但与客户端无关的管理员接受了加入网络。

请记住,用于 NIS 域名的名称必须与 DNS 域名不同。

什么是NIS?

NIS 是一个包含敏感表的数据库。
它从文本文件(如 /etc/passwd、/etc/services 和任何其他表格文件)创建表格。

有一个表可能包含一列或者多列,每行都有一个唯一键。

你可以把它变成任何普通的数据库。

我们可以通过两种方式查询这些表:

  • 整个表
  • 通过搜索拉出特定条目

当程序请求搜索用户密码详细信息时,客户端会检查 /etc/passwd 文件以检查该用户是否不存在;然后客户端要求 NIS 服务器在 NIS 服务器的 /etc/passwd 表中搜索它。

我们可以使用 NIS 服务器附带的任何服务和工具:

yp:此服务请求查询服务 NIS 客户端提供。

ypbind :这是NIS的客户端。

ypxfrd :我们可以使用此服务将 NIS 数据库从主 MIS 服务器发送到从服务器。

配置网络信息系统

正如我们前面提到的,ypserv 等待请求 NIS 客户端提供答案。

NIS 是一个 RPC 服务,因此在尝试启动 Linux NIS 服务器之前,我们需要确保 rpcbind 程序已启动并正在运行。

在依赖 systemd 成为服务管理器的新 Linux 发行版上,systemd 将自动处理 rpcbind 和 ypserv 之间存在的服务内部依赖关系。

如果发行版不是其中之一,我们可以像这样启动 rpcbind:

$ systemctl start rpcbind

在我们有 systemd 的发行版上,我们可以像这样启动服务:

$ systemctl start ypserv

要确认服务正在运行,我们可以使用 rpcinfo 命令。

$ rpcinfo -p | grep ypserv

/etc/nsswitch.conf 文件

该文件包含系统将用于搜索的设施条目及其相应的文件和服务。

passwd:               files nis

该条目告诉服务器在 /etc/passwd 文件中搜索密码条目,如果 NIS 服务器什么也没找到,请检查 NIS 服务器。

Linux NIS 服务器

Linux NIS 服务器类型有:

  • 主服务器:存储原始文件。
  • 从(辅助)服务器:我们可以用于负载平衡,并在主服务器出现故障时提供帮助。

如果需要,我们可以拥有辅助 NIS 服务器。

主要和要 NIS 服务器保持同步和更新。

安装 Master Linux NIS 服务器

在基于 Red Hat 的发行版上,我们可以像这样安装它:

$ dnf -y install ypserv

在基于 Debian 的发行版上,我们可以像这样安装它:

$ apt-get -y install nis

安装成功后,需要使用域名命令设置NIS域名。

让我们将其命名为 nis.example.com

$ domainname nis.example.com

为了在基于 Red hat 的发行版中保留我们的 NIS 域名,我们可以在 /etc/sysconfig/network 文件中创建一个名称为 NISDOMAIN 的变量。

在基于 Debian 的发行版上,我们可以通过将具有正确值的域名命令添加到在启动时运行的 rc 脚本之一来实现相同的结果。

NIS 工具

有一些有用的工具可以管理数据库中的信息。

ypcat :我们可以使用此工具通过从 NIS 映射中提取数据来从 NIS 服务器获取数据。

ypwhich :获取响应请求的 Linux NIS 服务器的名称。

ypmatch : 而不是抓取整个地图,或者我们可以通过键搜索来获取特定条目。

配置 NIS 客户端

在基于 Red Hat 的发行版上,我们可以像这样安装 NIS 客户端:

$ dnf -y install ypbind

在基于 Debian 的发行版上,我们可以像这样安装它:

$ apt-get install nis

/etc/yp.conf 文件是客户端守护程序的配置。

我们现在可以启动 ypbind:

$ systemctl start ypbind
$ systemctl enable ypbind

编辑 Makefile

make 命令负责为每个文件准备需要编译的文件列表和需要编译的程序。

make 命令编译一个名为 Makefile 的文件。

将这个概念应用于 NIS 是很简单的。
在这种情况下,需要将一系列文本文件转换为数据库格式。
我们需要一个工具来重新转换任何已更改的文件。
我们可以使用 make 命令。

Makefile 位于 /var/yp 目录中。
该文件包含 NIS 服务器的所有共享文件。

让我们讨论一下 Makefile 中的选项。

NOPUSH 选项

如果我们计划拥有 NIS 从属服务器,则需要告诉主 Linux NIS 服务器将生成的映射推送到从属服务器。
如果我们想支持从服务器,请将 NOPUSH 变量更改为 false。

NOPUSH=true

请记住,我们需要在 /var/yp/ypservers 文件中列出从属服务器的主机名,并确保在 /etc/hosts 文件中列出相应的条目。

最小 UID GID

Linux 上的每个用户都有一个用户 ID 和组 ID。
我们可以通过分别键入 id 命令和 gid 命令来获取 id。

我们可以使用 MINUID 和 MINGID 为将通过 NIS 共享的文件设置最小权限,如下所示:

MINUID=500
MINGID=500

将shadow密码与真实密码合并

Linux NIS 服务器可用于对其用户进行身份验证,NIS 服务器会自动从 /etc/shadow 文件中获取加密字段并将其合并到 /etc/passwd 的 NIS 共享副本中。

我们可以使用 MERGE_PASSWD 选项执行此操作:

MERGE_PASSWD=true

将组shadow密码与真实密码合并

/etc/group 文件允许将密码应用于组设置。
由于 /etc/group 文件需要公开可读,大多数发行版都支持影子组文件 /etc/gshadow 。

该选项称为 MERGE_GROUP:

MERGE_GROUP=true

共享条目

在 Makefile 中,有一个选项可以让我们指定需要共享的内容;这是(所有)选项。

all: passwd group hosts services shadow networks

选项 YPPWDDIR 指定 passwd、组和影子文件的位置,因此我们无需键入完整路径。

安装、配置和使用 Linux NIS 服务器

我们使用 Linux NIS 服务器(网络信息服务)在网络上的系统共享共享存储在平面文件中的关键数据。
使用共享存储库(例如 NIS)来存储用户和组信息而不是将它们存储在 /etc/ passwd 之类的平面文件中通常是理想的选择。

那有什么好处呢?

通过 NIS 服务器提供远程外部文件,这将允许任何 NIS 客户端计算机访问或者这些共享文件中的数据,将它们的模板本地版本的扩展。

NIS 不用于共享文件。
我们可以通过 NIS(如 /etc/services 文件)共享任何至少一列拥有唯一值的表格文件。

使用 NIS 服务器的主要好处是我们可以保留数据和文件,标记任何更新传播给所有用户。

一些用户,尤其是 Windows 用户,认为可能是一种 Active Directory 的服务。
Linux NIS 服务器比 Active Directory 旧,不是它的副本。

使用 ypinit 初始化 NIS 服务器

在 Makefile 中完成编辑选项后,我们可以像这样初始化 NIS 服务器:

$ /usr/lib64/yp/ypinit -m

我们可以使用 -m 选项将服务器初始化为主服务器。

或者,如果我们使用的是 32 位系统,则命令将是:

$ /usr/lib/yp/ypinit

如果我们有辅助 NIS 服务器,此工具将询问辅助 NIS 服务器。

服务器将这些条目存储在 /var/yp/ypservers 文件中。

现在 NIS 服务器应该可以正常工作,并且地图将位于辅助服务器上(如果有的话)。

日期:2020-07-15 11:16:44 来源:oir作者:oir