在值的周围使用引号,以保留嵌入的等号和逗号。例如,输入:
hostname:configuration services ldap> set base_dn="dc=example,dc=com"
此基本搜索 DN 自动在前面附加 ou=people(对于用户搜索)、ou=group(对于组搜索)和 ou=netgroup(对于网络组搜索)。如果这些值在您的环境中不起作用,则为 user_search、group_search 或 netgroup_search 设置其他值。如果您为 user_search、group_search 或 netgroup_search 提供值,则忽略 base_dn 的值。
对于递归搜索,将 search_scope 设置为 sub。对于非递归搜索,将 search_scope 设置为 one。
search_scope 的值适用于所有搜索。要为特定类型的搜索覆盖 search_scope,请为 user_search、group_search 或 netgroup_search 提供值。
搜索描述符属性为 user_search、group_search 和 netgroup_search。
默认情况下,对于用户搜索,ou=people 附加到 base_dn 值前面;对于组搜索,ou=group 附加到 base_dn 值前面;对于网络组搜索,ou=netgroup 附加到 base_dn 值前面。如果 LDAP 数据库没有名为 people、group 或 netgroup 的子树,则数据库搜索将失败,因为找不到对象。
设置搜索描述符属性的值,以指定正确的子树来搜索用户、组和网络组。在值的周围使用引号,以保留嵌入的等号和逗号。例如,可以为用户的搜索描述符输入以下内容:
hostname:configuration services ldap> set user_search="ou=employees,dc=example,dc=com"
如果 LDAP 数据库没有用于用户和组的子树,则使用搜索描述符属性重新输入基本搜索 DN,以防止自动在前面附加 ou=people 或 ou=group,如以下示例中所示:
hostname:configuration services ldap> set group_search="dc=example,dc=com"
必须在搜索描述符值中包括 base_dn 的值。此外,还包括您的范围选择。base_dn 和 search_scope 都将忽略,改为使用搜索描述符值。上一段落中的示例指定非递归搜索。要指定递归搜索,请将该示例更改如下:
hostname:configuration services ldap> set group_search="dc=example,dc=com?sub"
用户数据类型的属性中显示了用于用户搜索的默认属性。组数据类型的属性中显示了用于组搜索的默认属性。
如果您的环境将此数据存储在不同属性中,则使用 user_mapattr、group_mapattr 和 netgroup_mapattr 属性指定用于检索给定数据的属性。例如,输入以下命令来使用 employeename(而不是 uid)作为用户名的属性:
hostname:configuration services ldap> set user_mapattr="uid=employeename"
将映射括在引号中,以保留映射中的等号。
要指定多个属性更改,请输入映射列表,并且每个映射用引号括起来,如以下示例中所示:
hostname:configuration services ldap> set user_mapattr="uid=employeename","uidNumber=employeenumber"
用于用户搜索的默认对象类为 posixAccount。用于组搜索的默认对象类为 posixGroup。用于网络组搜索的默认对象类为 nisNetgroup。
如果您的环境使用其他对象类,则使用 user_mapobjclass、group_mapobjclass 和 netgroup_mapobjclass 属性来指定要使用的对象类的名称。例如,输入以下命令来使用 unixaccount(而不是 posixAccount)作为用户对象类:
hostname:configuration services ldap> set user_mapobjclass="posixAccount=unixaccount"
输入 show,查看属性设置,然后输入 commit。