如果使用 NIS+ 作为 DHCP 数据存储,则可能遇到以下几类问题:
如果您尝试使用 NIS+ 作为数据存储,则 DHCP 管理程序可能不会提供 NIS+ 作为数据存储的选择。如果使用 dhcpconfig 命令,则可能会看到一条消息,指出 NIS+ 似乎未安装,它当前未运行。这两种症状表示尽管网络可能正在使用 NIS+,但尚未针对此服务器配置 NIS+。必须先将服务器系统配置为 NIS+ 客户机,然后才能选择 NIS+ 作为数据存储。
在将 DHCP 服务器系统设置为 NIS+ 客户机之前,以下语句必须成立:
域必须已经配置。
NIS+ 域的主服务器必须正在运行。
主服务器的表必须已填充。
主机表必须包含新客户机系统(即 DHCP 服务器系统)的项。
有关配置 NIS+ 客户机的详细信息,请参见《System Administration Guide: Naming and Directory Services (NIS+)》中的“Setting Up NIS+ Client Machines”。
将 NIS+ 成功用于 DHCP 之后,如果对 NIS+ 进行更改,则可能会遇到错误。这些更改可能会引起配置问题。请使用以下问题说明和解决方法来帮助确定配置问题的原因。
问题:NIS+ 域中不存在根对象。
解决方法:键入以下命令:
/usr/lib/nis/nisstat
此命令会显示域的统计信息。如果不存在根对象,则不会返回任何统计信息。
使用《System Administration Guide: Naming and Directory Services (NIS+)》设置 NIS+ 域。
问题:NIS+ 无法用于 passwd 和 publickey 信息。
解决方法:键入以下命令来查看名称服务转换器的配置文件:
cat /etc/nsswitch.conf
在 passwd 和 publickey 项中检查 "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+)》。
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) 手册页。