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

nisplusLDAPcolumnFromAttribute 属性

nisplusLDAPcolumnFromAttribute 指定用于将 LDAP 数据映射到 NIS+ 的规则。

完整的项映射语法可以在 NIS+LDAPmapping(4) 中找到。但是,使用几个示例可以更清楚地解释映射语法。

NIS+ rpc.org_dir 表中包含四个名为 cnamenamenumbecomment 的列。因此,NIS+ RPC 程序号 (100300) 的标准名称为 nisd、别名为 rpc.nisdnisplusd 的项可以由 rpc.org_dir 中的下列 NIS+ 项表示:


nisd nisd 100300	NIS+ server

nisd rpc.nisd 100300	NIS+ server

nisd nisplusd 100300	NIS+ server

假定 defaultSearchBase 值为 dc=some,dc=domain,相应的 LDAP 项(列在 ldapsearch(1) 中)将如下所示:


dn: cn=nisd,ou=Ppc,dc=some,dc=domain

cn: nisd

cn: rpc.nsid

cn: nisplusd

oncRpcNumber: 100300

description: NIS+ server

objectClass: oncRpc

这有助于在 NIS+ 数据和 LDAP 数据之间建立简单的一一映射的关系,而且从 NIS+ 到 LDAP 的相应映射属性值如下所示:


nisplusLDAPattributeFromColumn \

rpc:		dn=("cn=%s,", name), \

				cn=cname, \

				cn=name, \

				oncRpcNumber=number, \

				description=comment

这会使该项的 DN 为 cn=%s,并用 cname 列的值替换 %s


cn=nisd,

由于该值以逗号结尾,因此将附加从 nisplusObjectDN 读取的基值,结果如下所示:


cn=nisd,ou=Rpc,dc=some,dc=domain

oncRpcNumberdescription 属性值只是相应 NIS+ 列的简单赋值。rpc.nisd 会将多个 NIS+ 项收集到一个 LDAP 项中,并用多个 cn 值来表示不同的 name 列值。

同样,从 LDAP 到 NIS+ 的映射将如下所示:


nisplusLDAPcolumnFromAttribute \

 					rpc:		cname=cn, \

			 						(name)=(cn), \

									number=oncRpcNumber, \

									comment=description

以上示例会将 oncRpcNumberdescription 值赋予相应的 NIS+ 列。多值 cn(由 (cn) 表示)映射到多个 name 列值(由 (name) 表示)。由于 name 列不能具有多值,因此 rpc.nisd 会为每个 cn 值创建一个 NIS+ 项。

最后,nisplusLDAPattributeFromColumn 值是用于删除操作的规则集的示例。


nisplusLDAPattributeFromColumn \

user_attr_del:	dn=("uid=%s,", name), \

						SolarisUserQualifier=, \

						SolarisAttrReserved1=, \

 						SolarisAttrReserved2=, \

						SolarisAttrKeyValue= 

而且,user_attr.org_dir 数据与其他帐户信息(来自 passwd.org_dir 和其他表)共享 ou=People 容器。如果 user_attr.org_dir 表中的一项被删除,您可能不希望整个 ou=People 项被删除。相反,以上删除项假设当 user_attr.org_dir 项被删除时,SolarisUserQualifierSolarisAttrReserved1SolarisAttrReserved2SolarisAttrKeyValue 属性(如果有的话)会从以下规则所指定的 ou=People 项中删除:


dn=("uid=%s,", name)

LDAP 项的其余部分保持不变。