系统管理指南:IP 服务

NIS+ 问题和 DHCP 数据存储

如果使用 NIS+ 作为 DHCP 数据存储,则可能遇到以下几类问题:

无法选择 NIS+ 作为 DHCP 数据存储

如果您尝试使用 NIS+ 作为数据存储,则 DHCP 管理程序可能不会提供 NIS+ 作为数据存储的选择。如果使用 dhcpconfig 命令,则可能会看到一条消息,指出 NIS+ 似乎未安装,它当前未运行。这两种症状表示尽管网络可能正在使用 NIS+,但尚未针对此服务器配置 NIS+。必须先将服务器系统配置为 NIS+ 客户机,然后才能选择 NIS+ 作为数据存储。

在将 DHCP 服务器系统设置为 NIS+ 客户机之前,以下语句必须成立:

有关配置 NIS+ 客户机的详细信息,请参见《System Administration Guide: Naming and Directory Services (NIS+)》中的“Setting Up NIS+ Client Machines”

未完全配置用于 DHCP 数据存储的 NIS+

将 NIS+ 成功用于 DHCP 之后,如果对 NIS+ 进行更改,则可能会遇到错误。这些更改可能会引起配置问题。请使用以下问题说明和解决方法来帮助确定配置问题的原因。

问题:

NIS+ 域中不存在根对象。

解决方法:

键入以下命令:

/usr/lib/nis/nisstat

此命令会显示域的统计信息。如果不存在根对象,则不会返回任何统计信息。

使用《System Administration Guide: Naming and Directory Services (NIS+)》设置 NIS+ 域。

问题:

NIS+ 无法用于 passwdpublickey 信息。

解决方法:

键入以下命令来查看名称服务转换器的配置文件:

cat /etc/nsswitch.conf

passwdpublickey 项中检查 "nisplus" 关键字。有关配置名称服务转换器的信息,请参阅《System Administration Guide: Naming and Directory Services (NIS+)》

问题:

域名为空。

解决方法:

键入以下命令:

domainname

如果此命令列出一个空字符串,则表明域尚未设置域名。请使用本地文件进行数据存储或者为网络设置 NIS+ 域。请参阅《System Administration Guide: Naming and Directory Services (NIS+)》

问题:

NIS_COLD_START 文件不存在。

解决方法:

在服务器系统上键入以下命令来确定此文件是否存在:

cat /var/nis/NIS_COLD_START

使用本地文件进行数据存储或者创建 NIS+ 客户机。请参阅《System Administration Guide: Naming and Directory Services (NIS+)》

有关 DHCP 数据存储的 NIS+ 访问问题

NIS+ 访问问题可能会导致有关 DES 凭证不正确或者更新 NIS+ 对象或表的权限不足的错误消息。请使用以下问题说明和解决方案来确定所遇到的 NIS+ 访问错误的原因。

问题:

DHCP 服务器系统没有创建对 NIS+ 域中 org_dir 对象的访问权限。

解决方法:

键入以下命令:


nisls -ld org_dir

访问权限以 r---rmcdrmcdr--- 形式列出,其中权限分别应用于无人 (nobody)、属主 (owner)、组 (group) 和全局 (world)。对象的属主将在随后列出。

通常,org_dir 目录对象为属主和组提供了完全权限。完全权限包括读取、修改、创建和销毁。org_dir 目录对象仅会为全局和无人这两个类提供读取访问权限。

DHCP 服务器名必须作为 org_dir 对象的属主列出,或者作为组的主体列出。组必须具有创建访问权限。请使用以下命令列出组:


nisls -ldg org_dir

如有必要,可使用 nischmod 命令更改 org_dir 的权限。例如,要向组添加创建权限,可键入以下命令:


nischmod g+c org_dir

有关更多信息,请参见 nischmod(1) 手册页。

问题:

DHCP 服务器没有在 org_dir 对象下创建表的权限。

通常,此问题表示服务器系统的主体名不是 org_dir 对象的所属组的成员,或者不存在所属组。

解决方法:

键入以下命令查找所属组的名称:


niscat -o org_dir

查找显示如下内容的行:

Group : "admin.example.com."

使用以下命令列出组中的主体名:


nisgrpadm -l groupname

例如,以下命令可列出组 admin.example.com 的主体名:

nisgrpadm -l admin.example.com

服务器系统名应作为组的显式成员列出,或者作为隐式成员包括在组中。如有必要,可使用 nisgrpadm 命令将服务器系统的名称添加到组中。

例如,要将服务器名称 pacific 添加到组 admin.example.com 中,可键入以下命令:


nisgrpadm -a admin.example.com pacific.example.com

有关更多信息,请参见 nisgrpadm(1) 手册页。

问题:

DHCP 服务器在 NIS+ cred 表中没有有效的数据加密标准 (Data Encryption Standard, DES) 凭证。

解决方法:

如果存在凭证问题,则会显示错误消息,表明用户在 NIS+ 名称服务中没有 DES 凭证。

使用 nisaddcred 命令可为 DHCP 服务器系统添加安全凭证。

以下示例说明如何在域 example.com 中为系统 mercury 添加 DES 凭证:


nisaddcred -p unix.mercury@example.com \
-P mercury.example.com. DES example.com.

此命令会提示输入超级用户口令,生成加密密钥时需要使用此口令。

有关更多信息,请参见 nisaddcred(1M) 手册页。