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 服务器(网络信息服务)在网络上的系统共享共享存储在平面文件中的关键数据。
使用共享存储库(例如 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 服务器应该可以正常工作,并且地图将位于辅助服务器上(如果有的话)。