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

SSD 说明

serviceSearchDescriptor 属性 定义 LDAP 名称服务客户机搜索特定服务信息的方式和位置。serviceSearchDescriptor 包含一个服务名称,其后跟一个或多个用分号分隔的基 (base)-范围 (scope) -过滤器 (filter) 三元参数。 使用这些基 (base)-范围 (scope) -过滤器 (filter) 三元参数,可以定义仅搜索特定服务并按顺序进行搜索。 如果针对给定服务指定了多个基 (base)-范围 (scope) -过滤器 (filter),则该服务查找特定项时,将使用指定的范围和过滤器在每个基本容器中进行搜索。


注意 –

使用 SSD 时,不会在缺省位置中搜索服务(数据库),除非该 SSD 中包括缺省位置。 如果针对某个服务指定了多个 SSD,将会产生不可预测的行为。


在以下示例中,Solaris LDAP 名称服务客户机会依次在 ou=west,dc=example,dc=comou=east,dc=example,dc=com 中执行一级搜索,以查找 passwd 服务。要查找用户 usernamepasswd 数据,可以针对每个 BaseDN 使用缺省的 LDAP 过滤器 (&(objectClass=posixAccount)(uid=username))


serviceSearchDescriptor: passwd:ou=west,dc=example,dc=com;ou=east,

dc=example,dc=com 

在以下示例中,Solaris LDAP 名称服务客户机将在 ou=west,dc=example,dc=com 中执行子树搜索以查找 passwd 服务。要查找用户 usernamepasswd 数据,可以使用 LDAP 过滤器 (&(fulltimeEmployee=TRUE)(uid=username)) 搜索 ou=west,dc=example,dc=com 子树。


serviceSearchDescriptor: passwd:ou=west,dc=example,

dc=com?sub?fulltimeEmployee=TRUE

还可以将多个容器与一个特定的服务类型关联。在以下示例中,服务搜索描述符指定在三个容器中搜索口令项。

请注意,在下面的示例中,SSD 中的结尾 ',' 表示 defaultSearchBase 将附加在相对基本容器之后。


defaultSearchBase: dc=example,dc=com

serviceSearchDescriptor: \

passwd:ou=myuser,;ou=newuser,;ou=extuser,dc=example,dc=com

属性映射

使用 Solaris LDAP 名称服务时, 可以重新映射其任何服务的一个或多个属性名。(Solaris LDAP 客户机使用第 14 章,LDAP 一般参考(参考)中列出的已知属性。) 如果映射一个属性,则必须确保该属性与初始属性具有相同的含义和语法。请注意,映射 userPassword 属性可能会产生问题。

出于多种原因,您可能需要使用架构映射。

此属性的格式为 service:attribute-name=mapped-attribute-name

如果要针对给定服务映射多个属性,则可以定义多个 attributeMap 属性。

在以下示例中,将 uidhomeDirectory 属性用于 passwd 服务时便会使用 employeeNamehome 属性。


attributeMap: passwd:uid=employeeName

attributeMap: passwd:homeDirectory=home

但也会出现以下特殊情况:将 passwd 服务的 gecos 属性映射到多个属性。下面是一个示例:


attributemap: gecos=cn sn title

以上示例将 gecos 值映射到用空格分隔的 cnsntitle 属性值的列表。

对象类映射

使用 Solaris LDAP 名称服务时, 可以重新映射其任何服务的对象类。如果要针对给定服务映射多个对象类,则可以定义多个 objectclassMap 属性。在以下示例中,使用 posixAccount 对象类时便会使用 myUnixAccount 对象类。


objectclassMap: passwd:posixAccount=myUnixAccount