映射文件 NISLDAPmapping 非常复杂。许多可能的错误都会导致映射出现意外的行为方式。请使用以下方法来解决这类问题。
运行 ypserv -ir(或 -Ir)时显示控制台消息
问题:控制台上会显示简单的消息,并且服务器会退出(详细说明将写入 syslog)。
原因:映射文件的语法可能不正确。
解决方案:检查并更正 NISLDAPmapping 文件中的语法。
NIS 守护进程在启动时退出
问题: 运行 ypserv 或其他 NIS 守护进程时,会记录一条与 LDAP 相关的错误消息,并且守护进程会退出。
原因: 这可能是由于以下原因之一导致的:
无法访问 LDAP 服务器。
在 NIS 映射或 DIT 中找到的项与指定的映射不兼容。
尝试对 LDAP 服务器执行读写操作时返回错误。
解决方案:检查 LDAP 服务器上的错误日志。请参见常见的 LDAP 错误消息中所列的 LDAP 错误。
NIS 操作产生意外的结果
问题:NIS 操作未返回预期的结果,但是未记录错误。
原因:LDAP 或 NIS 映射中可能存在不正确的项,这会导致映射无法按照预期的方式完成。
解决方案:检查并更正 LDAP DIT 以及 N2L 版本的 NIS 映射中的各项。
检查 LDAP DIT 中的项是否正确,并根据需要更正这些项。
如果使用的是 Sun Java System Directory Server,请通过运行 directoryserver startconsole 来启动管理控制台。
检查 /var/yp 目录中 N2L 版本的 NIS 映射是否包含预期的项,方法是将新生成的映射与原来的映射进行比较。请根据需要更正这些项。
# cd /var/yp/domainname # makedbm -u test.byname # makedbm -u LDAP_test.byname |
检查映射的输出时请注意以下情况:
在这两个文件中,各项的顺序可能不同。
在对输出进行比较之前,请使用 sort 命令。
在这两个文件中,空格的用法可能不同。
在对输出进行比较时,请使用 diff -b 命令。
NIS 映射的处理顺序
问题:出现对象类违规。
原因:运行 ypserv -i 命令时,会读取每个 NIS 映射并将其内容写入 DIT 中。同一个 DIT 对象的属性可以由多个映射创建。通常,可通过一个映射来创建该对象的大部分属性,包括该对象的所有 MUST 属性。其他映射则负责创建其他 MAY 属性。
映射是按照 nisLDAPobjectDN 属性在 NISLDAPmapping 文件中的出现顺序来处理的。如果包含 MAY 属性的映射在包含 MUST 属性的映射之前进行处理,则会出现对象类违规。有关此错误的更多信息,请参见常见的 LDAP 错误消息中的错误 65。
解决方案:将 nisLDAPobjectDN 属性重新排序,以便按照正确的顺序处理这些映射。
临时解决方法是多次重新运行 ypserv -i 命令。每次执行该命令,都会增加更多的 LDAP 项。
如果这种映射方式会导致不能从至少一个映射创建某个对象的所有 MUST 属性,则不支持以这种方式进行映射。