系统管理指南:名称和目录服务(DNS、NIS 和 LDAP)

NIS 到 LDAP 转换服务概述

NIS 到 LDAP 转换服务(N2L 服务)使用 NIS 到 LDAP 转换守护进程来替换 NIS 主服务器上现有的 NIS 守护进程。N2L 服务还在该服务器上创建一个 NIS 到 LDAP 的转换映射文件。该映射文件指定 NIS 映射项和 LDAP 中目录信息树 (Directory Information Tree, DIT) 等效项之间的映射。已经进行这种转换的 NIS 主服务器称为 N2L 服务器。从属服务器上没有 NISLDAPmapping 文件,因此它们继续以通常的方式工作。从属服务器定期从 N2L 服务器更新其数据,就好像 N2L 服务器是常规的 NIS 主服务器一样。

N2L 服务的行为由 ypservNISLDAPmapping 配置文件控制。脚本 inityp2l 可帮助对这些配置文件进行初始设置。一旦建立了 N2L 服务器,就可以通过直接编辑这些配置文件来维护 N2L。

N2L 服务支持以下功能:

在任何名称系统中,仅有一个信息源可以是权威来源。在传统的 NIS 中,NIS 源是权威信息。在使用 N2L 服务时,权威数据源自 LDAP 目录。如第 9 章,LDAP 的基本组件和概念(概述)中所述,该目录是通过使用目录管理工具进行管理的。

NIS 源仅保留用于紧急备份或卸载。在使用 N2L 服务之后,可以逐步淘汰 NIS 客户机。最终,所有的 NIS 客户机都会被 Solaris LDAP 名称服务客户机所取代。

以下各小节中提供了其他概述信息:

NIS 到 LDAP 转换工具和服务管理工具

NIS 和 LDAP 服务由服务管理工具管理。 可以使用 svcadm 命令对这些服务执行启用、禁用或重新启动等管理操作。使用 svcs 命令可以查询服务的状态。有关使用 SMF 对 LDAP 和 NIS 进行管理的更多信息,请参见LDAP 和服务管理工具NIS 和服务管理工具。有关 SMF 的概述,请参阅System Administration Guide: Basic Administration中的“ Managing Services (Overview)”。另请参阅 svcadm(1M)svcs(1) 手册页以了解更多详细信息。

NIS 到 LDAP 转换的目标用户

您需要熟悉 NIS 和 LDAP 概念、术语和 ID 才能执行本章中的过程。有关 NIS 和 LDAP 名称服务的更多信息,请参见本书中的以下两章:

不应使用 NIS 到 LDAP 转换服务的情况

请勿在以下情况下使用 N2L 服务:

NIS 到 LDAP 转换服务对用户造成的影响

仅安装与 N2L 服务相关的文件不会更改 NIS 服务器的缺省行为。在安装时,管理员将会看到 NIS 手册页发生了一些变化,而且服务器上增加了 N2L 帮助脚本 inityp2lypmap2src。但是,只要在 NIS 服务器上没有运行 inityp2l 或没有手动创建 N2L 配置文件,NIS 组件就会继续在传统的 NIS 模式下启动并像通常那样工作。

运行 inityp2l 之后,用户会看到服务器和客户机行为发生了一些变化。以下是 NIS 和 LDAP 用户类型的列表,其中说明了在部署 N2L 服务之后每种类型的用户应当注意到的情况。

用户类型 

N2L 服务的影响 

NIS 主服务器管理员 

NIS 主服务器转换为 N2L 服务器。NISLDAPmappingypserv 配置文件将会安装在 N2L 服务器上。建立 N2L 服务器之后,可以使用 LDAP 命令来管理名称信息。

NIS 从属服务器管理员 

进行 N2L 转换之后,NIS 从属服务器继续以通常的方式运行 NIS。当 ypmake 调用 yppush 时,N2L 服务器会将已更新的 NIS 映射推送到从属服务器。请参见 ypmake(1M) 手册页。

NIS 客户机 

NIS 读取操作与传统的 NIS 没有区别。当 Solaris LDAP 名称服务客户机更改 DIT 中的信息时,这些信息会复制到 NIS 映射中。复制操作是在可配置的超时时间过期之后完成的。这类行为与连接到 NIS 从属服务器的常规 NIS 客户机的行为相似。 

如果 N2L 服务器无法绑定到 LDAP 服务器进行读取,则 N2L 服务器将从其自身的缓存副本中返回信息。或者,N2L 服务器还可能会返回内部服务器错误。可以将 N2L 服务器配置为按照上述任一方式响应。有关更多详细信息,请参见 ypserv(1M) 手册页。

所有用户 

当 NIS 客户机请求更改口令时,所做的更改将立即显示在 N2L 主服务器和本地 LDAP 客户机上。 

如果尝试在 NIS 客户机上更改口令,而且 LDAP 服务器不可用,则更改将被拒绝,N2L 服务器将返回内部服务器错误。此行为可防止将不正确的信息写入高速缓存中。 

NIS 到 LDAP 转换术语

以下是与实现 N2L 服务相关的术语。

表 15–1 与 N2L 转换相关的术语

术语 

说明 

N2L configuration file(N2L 配置文件) 

ypserv 守护进程用来在 N2L 模式下启动主服务器的 /var/yp/NISLDAPmapping 文件和 /var/yp/ypserv 文件。有关详细消息,请参见 NISLDAPmapping(4) 和 ypserv(4) 手册页。

map(映射) 

在 N2L 服务的上下文中,术语“映射”的用法有两种:

  • 指代 NIS 用于存储特定类型信息的数据库文件

  • 描述从 LDAP DIT 映射 NIS 信息或将 NIS 信息映射到 LDAP DIT 的过程

mapping(映射) 

NIS 项与 LDAP DIT 项之间的相互转换过程。 

mapping file(映射文件) 

用来指定如何映射 NIS 文件和 LDAP 文件之间各项的 NISLDAPmapping 文件。

standard map(标准映射) 

无需手动修改映射文件即可由 N2L 服务支持的常用 NIS 映射。支持的标准映射中提供了支持的标准映射的列表。

nonstandard map(非标准映射) 

自定义为使用 NIS 和 LDAP DIT 之间映射(RFC 2307 或其后续版本中标识的映射除外)的标准 NIS 映射。 

custom map(自定义映射) 

不是标准映射的任何映射,从 NIS 转换至 LDAP 时,需要手动修改映射文件。 

LDAP client(LDAP 客户机) 

对任何 LDAP 服务器执行读写操作的任何传统的 LDAP 客户机。传统的 LDAP 客户机是对任何 LDAP 服务器执行读写操作的系统。Solaris LDAP 名称服务客户机可处理部分自定义的名称信息。 

LDAP naming services client(LDAP 名称服务客户机) 

用来处理部分自定义名称信息的 Solaris LDAP 客户机。 

N2L server(N2L 服务器) 

已使用 N2L 服务重新配置为 N2L 服务器的 NIS 主服务器。重新配置过程包括替换 NIS 守护进程和添加新配置文件。 

NIS 到 LDAP 转换命令、文件和映射

共有两个实用程序、两个配置文件和一个映射与 N2L 转换相关联。

表 15–2 N2L 命令、文件和映射的说明

命令/文件/映射 

说明 

/usr/lib/netsvc/yp/inityp2l

帮助创建 NISLDAPmappingypserv 配置文件的实用程序。此实用程序不是用来管理这些文件的通用工具。高级用户可通过使用文本编辑器检查和自定义 inityp2l 输出来维护 N2L 配置文件或创建自定义映射。请参见 inityp2l(1M) 手册页。

/usr/lib/netsvc/yp/ypmap2src

用来将标准 NIS 映射转换为近似等效的 NIS 源文件的实用程序。ypmap2src 主要用于将 N2L 转换服务器转换为传统的 NIS。请参见 ypmap2src(1M) 手册页。

/var/yp/NISLDAPmapping

用来指定 NIS 映射项和 LDAP 中目录信息树 (Directory Information Tree, DIT) 等效项之间映射的配置文件。请参见 NISLDAPmapping(4) 手册页。

/var/yp/ypserv

用来为 NIS 到 LDAP 转换守护进程指定配置信息的文件。请参见 ypserv(4) 手册页。

ageing.byname

yppasswdd 使用的一种映射,在实现 NIS 到 LDAP 转换时,用于在 DIT 中读写口令生命期信息。

支持的标准映射

缺省情况下,N2L 服务支持以下列出的映射与 RFC 2307 或其后续版本中 LDAP 各项之间的映射。这些标准映射不需要手动修改映射文件。系统上任何未列在以下列表中的映射都被视为自定义映射,需要手动进行修改。

N2L 服务还支持对 auto.* 映射进行自动映射。但是,由于大多数 auto.* 文件名和内容都特定于各自的网络配置,因此该列表并未指定这些文件,但作为标准映射支持的 auto.homeauto.master 映射除外。


audit_user

auth_attr

auto.home

auto.master

bootparams

ethers.byaddr ethers.byname

exec_attr

group.bygid group.byname group.adjunct.byname

hosts.byaddr hosts.byname

ipnodes.byaddr ipnodes.byname

mail.byaddr mail.aliases

netgroup netgroup.byprojid netgroup.byuser netgroup.byhost

netid.byname

netmasks.byaddr

networks.byaddr networks.byname

passwd.byname passwd.byuid passwd.adjunct.byname

printers.conf.byname

prof_attr

project.byname project.byprojectid

protocols.byname protocols.bynumber

publickey.byname

rpc.bynumber

services.byname services.byservicename

timezone.byname

user_attr

在 NIS 到 LDAP 转换过程中,yppasswdd 守护进程使用 N2L 特定的映射 ageing.byname 在 DIT 中读写口令生命期信息。如果没有使用口令生命期,则会忽略 ageing.byname 映射。