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

2023-10-22

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

那么这样做有什么好处呢?

通过通过 NIS 服务器提供此类文件,将允许任何远程 NIS 客户端计算机访问或查询这些共享文件中的数据,并将它们用作本地版本的扩展。

NIS 不用于共享文件。您可以通过 NIS 共享任何至少有一列具有唯一值的表格文件,例如 /etc/services 文件。

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

一些用户,尤其是 Windows 用户,可能会认为这是类似 Active Directory 的服务。 Linux NIS 服务器早于 Active Directory,并且不是它的复制品。

 

 

什么是NIS?

NIS 是一个包含一系列表的数据库。它从 /etc/passwd、/etc/services 等文本文件以及任何其他表格文件创建表。

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

您可以将其视为任何普通数据库。

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

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

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

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

ypserv:此服务等待查询并向 NIS 客户端提供答案。

ypbind:这是NIS的客户端。

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

 

Linux NIS 服务器

Linux NIS 服务器类型有:

  • 主服务器:存储原始文件。
  • 从(辅助)服务器:我们可以使用它来进行负载平衡,并在主服务器发生故障时很有帮助。

如果需要,您可以拥有多个辅助 NIS 服务器。

主 NIS 服务器和辅助 NIS 服务器保持同步和更新。这个过程称为服务器推送.

 

NIS 域名

NIS 域就像 Windows 中的域控制器的域,但不同之处在于客户端无需等待管理员接受即可加入网络。

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

 

安装 Linux 主 NIS 服务器

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


$ dnf -y install ypserv  

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


$ apt-get -y install nis  

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

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


$ domainname nis.example.com  

为了在基于 Red hat 的发行版中保留我们的 NIS 域名,我们可以创建一个名为的变量尼斯域in the /etc/sysconfig/网络file.

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

 

配置NIS

正如我们之前提到的,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  

 

编辑 Makefile

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

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

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

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

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

不推送选项

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


NOPUSH=true  

请记住,您需要在以下位置列出从属服务器的主机名:/var/yp/ypservers文件并确保在/etc/主机file.

最小 UID GID

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

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


MINUID=500

MINGID=500  

将影子密码与真实密码合并

Linux NIS 服务器可用于验证其用户,NIS 服务器会自动从客户端获取加密字段/etc/影子文件并将其合并到 NIS 共享副本中/etc/密码.

您可以使用 MERGE_PASSWD 选项来执行此操作:


MERGE_PASSWD=true  

将组影子密码与真实密码合并

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

该选项称为 MERGE_GROUP:


MERGE_GROUP=true  

共享条目

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


all: passwd group hosts services shadow networks  

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

 

使用 ypinit 初始化 NIS 服务器

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


$ /usr/lib64/yp/ypinit -m  

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

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


$ /usr/lib/yp/ypinit  

该工具将询问辅助 NIS 服务器(如果有)。

服务器将把这些条目存储在/var/yp/ypserversfile.

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

 

配置NIS客户端

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


$ dnf -y install ypbind  

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


$ apt-get install nis  

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

您现在可以启动 ypbind:


$ systemctl start ypbind

$ systemctl enable ypbind  

 

/etc/nsswitch.conf 文件

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


passwd:               files nis  

此条目告诉服务器在 /etc/passwd 文件中搜索密码条目,如果 NIS 服务器找不到任何内容,请检查 NIS 服务器。

 

网络信息服务工具

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

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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

安装、配置和使用 Linux NIS 服务器 的相关文章

  • 如何在 Ubuntu 和 Debian 中切换 Python 版本

    Python 是一种高级编程语言 广泛用于系统编程 它适用于所有流行的操作系统 您可以在单个系统上安装多个 Python 版本 安装多个 Python 版本后 您可以使用 update alternatives 工具切换默认 Python
  • 如何在 CentOS 7 上安装和使用 Docker

    Docker 是一种容器化技术 可让您快速构建 测试和部署应用程序 作为可移植 自给自足的容器 几乎可以在任何地方运行 在本教程中 我们将介绍如何在 CentOS 7 上安装 Docker CE 并探索基本的 Docker 概念和命令 先决

随机推荐

  • 如何在 CentOS 8 上安装 CouchDB

    Apache CouchDB 是由 Apache 软件基金会开发的免费开源 NoSQL 数据库 它可以用作单节点或集群数据库 CouchDB 服务器将其数据存储在命名数据库中 其中包含具有以下内容的文档JSON结构 每个文档由许多字段和附件
  • 如何在 Ubuntu 20.04 上安装 Kvm

    KVM 基于内核的虚拟机 是内置于 Linux 内核中的开源虚拟化技术 使用 KVM 运行多个 Linux 或 Windows 来宾虚拟机 每个来宾都与其他来宾完全隔离 并拥有自己的操作系统和专用虚拟硬件 例如 CPU 内存 网络接口和存储
  • 如何在 Ubuntu 20.04 上安装 OpenCV

    OpenCV 开源计算机视觉库 是一个开源计算机视觉库 绑定了 C Python 和 Java 并支持所有主要操作系统 它可以利用多核处理并具有 GPU 加速功能来实现实时操作 OpenCV 的应用范围很广 包括医学图像分析 拼接街景图像
  • 如何在 Debian 10 Linux 上添加交换空间

    交换空间是磁盘上的空间 当物理内存已满时使用 当 Linux 系统耗尽 RAM 时 非活动页面将从 RAM 移至交换空间 交换空间可以采用专用交换分区或交换文件的形式 通常 运行 Debian 虚拟机时不存在交换分区 因此唯一的选择是创建交
  • 如何在 CentOS 8 上安装 Apache Maven

    Apache Maven 是一个开源项目管理和理解工具 主要用于 Java 项目 Maven 使用项目对象模型 POM 它本质上是一个 XML 文件 其中包含有关项目 配置详细信息 项目依赖项等的信息 在本教程中 我们将解释如何在 Cent
  • 如何在 Ubuntu 18.04 上安装 TensorFlow

    TensorFlow是由 Google 构建的免费开源机器学习平台 许多组织都在使用它 包括 Twitter PayPal 英特尔 联想和空中客车公司 TensorFlow 可以在 Python 虚拟环境中安装在系统范围内 作为Docker
  • Linux 中的 Chattr 命令(文件属性)

    在 Linux 中 文件属性是描述文件行为的元数据属性 例如 属性可以指示文件是否被压缩或指定文件是否可以被删除 一些属性 如不变性 可以设置或清除 而其他属性 如加密 是只读的 只能查看 对某些属性的支持取决于所使用的文件系统 本文介绍了
  • 在Ubuntu上安装RPM包

    Ubuntu 存储库包含数千个 deb 软件包 可以从 Ubuntu 软件中心或使用apt命令行实用程序 Deb 是所有基于 Debian 的发行版 包括 Ubuntu 都使用的安装包格式 有些软件包在标准 Ubuntu 存储库中不可用 但
  • 如何检查PHP版本

    PHP 是最常用的服务器端编程语言之一 PHP 版本之间存在一些重要差异 因此在某些情况下可能需要了解您的服务器上运行的是哪个版本 例如 如果您在开始安装之前升级应用程序或安装需要特定 PHP 版本的新应用程序 则需要找出 PHP 服务器的
  • 如何在 Debian 10 Linux 上安装 Google Chrome 网络浏览器

    谷歌浏览器是世界上最流行的网络浏览器 它是专为现代网络打造的快速 直观且安全的浏览器 Chrome 不是开源浏览器 并且不包含在官方 Debian 存储库中 它是基于Chromium 一个开源浏览器 可在默认 Debian Buster 存
  • 如何在 Ubuntu 中将用户添加到 Sudoers

    sudo是一个命令行程序 允许受信任的用户以 root 或其他用户身份执行命令 在本文中 我们将向您展示两种向用户授予 sudo 权限的方法 第一个是将用户添加到sudoers 文件 该文件包含控制向哪些用户和组授予 sudo 权限以及权限
  • 检查 gzip 文件而不解压缩:zcat、zless 和 zmore

    Linux 提供了多个用于处理压缩文件的命令 例如 zcat zless 和 zmore 本教程将深入探讨这些命令的用法 让您可以导航和检查压缩文件 而无需解压缩它们 下表总结了这 3 种工具之间的差异 Tool Description P
  • 使用 source 命令在 Linux 中获取脚本

    The sourceLinux 中的 command 是一个内置的 shell 命令 用于从文件中读取和执行命令 这意味着脚本定义的任何变量或函数在脚本执行完成后仍然可用 现在 让我们开始探索它的功能source命令 目录 hide 1 子
  • Linux 上的 MySQL(初学者教程)

    在这篇文章中 我们将介绍 Linux 上 MySQL 的许多方面 首先 如何安装它 如何执行基本的 CRUD 操作 如何导入和导出数据 如何使用 MySQL 引擎本身 例如设置 root 用户密码 等等 MySQL 是世界上最流行的关系数据
  • 将 NumPy 数组转换为 Pandas DataFrame(15+ 场景)

    通常我们需要在 NumPy 数组中创建数据并将其转换为 DataFrame 因为我们必须处理 Pandas 方法 在这种情况下 转换NumPy 数组 ndarrays 到数据框使我们的数据分析变得方便 在本教程中 我们将仔细研究一些可用于将
  • 使用 Python 发送电子邮件(多个示例)

    Python 允许您使用其内置模块自动执行发送电子邮件的任务 这样做可以让您摆脱手动向数千名用户发送电子邮件的繁琐且耗时的任务 本教程将探讨一些快速 简单的发送电子邮件和使用 Python 内置电子邮件模块的方法 目录 hide 1 检查电
  • Python 中的深度优先搜索算法(多个示例)

    深度优先搜索是一种流行的图遍历算法 在本教程中 我们将通过示例了解它的工作原理 以及我们如何用 Python 实现它 我们将研究以下部分 目录 hide 1 介绍 2 深度优先搜索算法 3 Representing a graph
  • Python NumPy 数组教程

    NumPy 是一个 Python 库 模块 用于科学计算Python编程 在本教程中 您将学习如何对 NumPy 数组执行多种操作 例如以多种方式添加 删除 排序和操作元素 NumPy 提供多维数组对象和其他派生数组 例如屏蔽数组或屏蔽多维
  • 关于 Linux 导出命令您需要了解的一切

    The exportLinux中的命令是一个内置的shell命令 用于设置环境变量在当前 shell 会话中 通过标记变量或函数以便随后导出到子进程的环境中 export命令确保这些变量对子进程的可用性 目录 hide 1 导出命令的语法
  • 安装、配置和使用 Linux NIS 服务器

    我们使用 Linux NIS 服务器 网络信息服务 用于在网络上的系统之间共享存储在平面文件中的关键数据 通常理想的做法是使用共享存储库 例如 NIS 来存储用户和组信息 而不是将它们存储在 etc passwd 等平面文件中 那么这样做有