跳过导航链接 | |
退出打印视图 | |
手册页第 1 部分:用户命令 Oracle Solaris 11.1 Information Library (简体中文) |
- 使用所配置的配置文件从 LDAP 目录搜索并列出命名信息
/usr/bin/ldaplist [-dlv] [-h LDAP_server[:serverPort] [-M domainName] [-N profileName] [-a authenticationMethod] [-P certifPath] [-D bindDN] [-w bindPassword] [-j passwdFile]] [database [key]...]
/usr/bin/ldaplist -g
/usr/bin/ldaplist -h
如果指定了 -h LDAP_server[:serverPort] 选项,则 ldaplist 将建立到该选项指定的服务器的连接,来获取 -N 选项指定的 DUAProfile。然后,ldaplist 从由所获得的配置描述的目录列出信息。
缺省情况下(如果未指定 -h LDAP_server[:serverPort] 选项),该实用程序将从 LDAP 目录服务搜索并列出命名信息,该目录服务是在客户端初始化阶段在 ldapclient(1M) 生成的 LDAP 配置文件中定义的。要以缺省模式使用该实用程序,必须预先设置 Oracle Solaris LDAP 客户端。
database 是一个容器名称或一个数据库名称,如 nsswitch.conf(4) 中所定义。容器是包含命名服务信息的目录信息树 (Directory Information Tree, DIT) 中的非叶条目。容器名称是容器相对于 defaultSearchBase 的 LDAP 相对标识名 (Relative Distinguished Name, RDN),如配置文件中所定义。例如,对于名为 ou=people 的容器,数据库名称是在 nsswitch.conf 中指定的数据库。该数据库映射到一个容器,例如,passwd 映射到 ou=people。如果指定了一个无效的数据库,则它将映射到一个通用容器,例如 nisMapName=name。
key 是要在数据库中搜索的属性值。可以指定要在同一数据库中搜索的多个 key。可以通过两种方式中的任一方式来指定 key:attribute=value 或 value。在第一种情况下,ldaplist 将搜索 key 传递到服务器。在后一种情况下,将根据指定数据库的方式分配属性。如果 database 是一个容器名称,则会使用 “cn” 属性类型。如果 database 是如在 nsswitch.conf 中定义的一个有效数据库名称,则会使用预定义的属性类型(请参见下表)。如果 database 是一个无效的数据库名称,则 cn 将用作属性类型。
ldaplist 实用程序依赖于在 RFC 2307bis(当前为 IETF 草稿)中定义的模式。LDAP 服务器上存储的数据必须基于该模式来存储,除非配置文件包含模式映射定义。有关模式映射的更多信息,请参见 ldapclient(1M)。下表列出了当没有在 key 中定义时,将使用的从数据库名称到容器的缺省映射、LDAP 对象类以及属性类型。
Database Object Class Attribute Type Container aliases mailGroup cn ou=Aliases automount nisObject cn automountMapName=auto_* bootparams bootableDevice cn ou=Ethers ethers ieee802Device cn ou=Ethers group posixgroup cn ou=Group hosts ipHost cn ou=Hosts ipnodes ipHost cn ou=Hosts netgroup ipNetgroup cn ou=Netgroup netmasks ipNetwork ipnetworknumber ou=Networks networks ipNetwork ipnetworknumber ou=Networks passwd posixAccount uid ou=People protocols ipProtocol cn ou=Protocols publickey nisKeyObject uidnumber ou=People cn ou=Hosts rpc oncRpc cn ou=Rpc services ipService cn ou=Services printers printerService printer-uri ou=printers auth_attr SolarisAuthAttr nameT ou=SolarisAuthAttr prof_attr SolarisProfAttr nameT ou=SolarisProfAttr exec_attr SolarisExecAttr nameT ou=SolarisProfAttr user_attr SolarisUserAttr uidT ou=people projects SolarisProject SolarisProjectID ou=projects
以下数据库只有当系统配置有 Trusted Extensions 时才可用:
tnrhtp ipTnetTemplate ipTnetTemplateName ou=ipTnet tnrhdb ipTnetHost ipTnetNumber ou=ipTnet
对于 automount 数据库 auto_*,在容器列中会呈现 auto_home、auto_direct 等等。
对于 publickey 数据库,如果 key 以数字开头,则它将被解释为一个 uid 编号。如果 key 以非数字开头,则它将被解释为一个主机名。
ldaplist 实用程序支持通过在 key 中使用通配符 “*” 执行子字符串搜索。例如,“my*” 将匹配以 “my” 开头的任何字符串。在某些 shell 环境中,包含通配符的 key 可能需要括在引号中。
如果没有指定 key,则当前搜索 baseDN 中的所有容器都将列出。
支持以下选项:
指定验证方法。缺省值是配置文件中配置的值。支持的验证方法包括:
simple sasl/CRAM-MD5 sasl/DIGEST-MD5 tls:simple tls:sasl/CRAM-MD5 tls:sasl/DIGEST-MD5
选择 simple 将导致口令以明文形式在网络中发送。强烈建议不要使用该方法。
此外,如果客户端配置有不使用验证的配置文件,也就是说,如果 credentialLevel 属性设置为 anonymous 或者 authenticationMethod 设置为 none,则用户必须使用此选项来提供验证方法。
列出指定数据库的属性而不是条目。缺省情况下会列出条目。
指定对所请求的数据库具有读取权限的条目。
列出数据库映射。
列出数据库映射。
此选项已过时。
指定从中读取条目的 LDAP 服务器的地址(或名称)和端口。系统会使用 nsswitch.conf 文件中指定的当前命名服务。端口的缺省值为 389,除非在验证方法中指定了 TLS。在这种情况下,缺省 LDAP 服务器端口号为 636。
用于指定 IPv6 的地址和端口号的格式如下:
[ipv6_addr]:port
要为 IPv4 指定地址和端口号,请使用以下格式:
ipv4_addr:port
如果指定了主机名,请使用以下格式:
host_name:port
指定一个文件,该文件包含绑定 DN 的口令或包含 SSL 客户端密钥数据库的口令。要保护口令,请在脚本中使用此选项,并将口令存放在安全文件中。
此选项与 -w 选项互斥。
列出与搜索条件匹配的每个条目的所有属性。缺省情况下,ldaplist 仅列出所找到的条目的标识名。
指定由指定服务器提供服务的域名称。如果未指定此选项,则使用缺省域名称。
指定 DUAProfile 名称。系统假定具有此名称的配置文件存在于由 -H 选项指定的服务器上。缺省值为 default。
指定通向证书数据库位置的证书路径。该值为安全数据库文件所在的路径。该值用于 TLS 支持,TLS 支持在 authenticationMethod 和 serviceAuthenticationMethod 属性中指定。缺省值为 /var/ldap。
要用于验证 bindDN 的口令。如果缺少此参数,则命令会提示输入口令。LDAP 不支持空口令。
当使用 -w bind_password 指定用于验证的口令时,系统的其他用户可以通过 ps 命令在脚本文件中或者在 shell 历史记录中看到口令。
如果提供 - 值作为口令,则命令会提示输入口令。
设置详细模式。ldaplist 实用程序还输出用来搜索条目的过滤器。过滤器的前缀为 “+++”。
示例 1 列出主机数据库中的所有条目
以下示例列出 hosts 数据库中的所有条目:
example% ldaplist hosts
示例 2 列出非标准数据库 ou=new 中的所有条目
以下示例列出非标准数据库中的所有条目:
example% ldaplist ou=new
示例 3 在 passwd 数据库中查找 user1
以下示例在 passwd 数据库中查找 user1:
example% ldaplist passwd user1
示例 4 在 services 数据库中查找服务端口为 4045 的条目
以下示例在 services 数据库中查找服务端口为 4045 的条目:
example% ldaplist services ipServicePort=4045
示例 5 在 passwd 数据库中查找用户名以 new 开头的所有用户
以下示例在 passwd 数据库中查找用户名以 new 开头的所有用户:
example% ldaplist passwd 'new*'
示例 6 列出 hosts 数据库的属性
以下示例列出 hosts 数据库的属性:
example% ldaplist -d hosts
示例 7 在 passwd 数据库中查找 user1
以下示例在 passwd 数据库中查找 user1。显式指定了一个 LDAP 服务器。
example% ldaplist -H 10.10.10.10:3890 \ -M another.domain.name -N special_duaprofile \ -D "cn=directory manager" -w secret \ user1
将返回以下退出值:
成功匹配了某些条目。
成功搜索了表但没有找到匹配项。
出现错误。输出了错误消息。
包含客户端的 LDAP 配置的文件。不要手动修改这些文件。其内容不保证是用户可读的。要更新这些文件,请使用 ldapclient(1M)
有关下列属性的说明,请参见 attributes(5):
|
ldapadd(1)、ldapdelete(1)、ldapmodify(1)、ldapmodrdn(1)、ldapsearch(1)、idsconfig(1M)、ldap_cachemgr(1M)、ldapaddent(1M)、ldapclient(1M)、resolv.conf(4)、attributes(5)、ldap(5)
RFC 2307bis 是一个处于草稿阶段的 IETF 信息文档,定义了将 LDAP 用作命名服务的方法。
当前,libldap.so.5 不支持 StartTLS,因此所提供的端口号指的是在打开 TLS 期间使用的端口,而不是用作 StartTLS 序列的一部分的端口。例如,-h foo:1000 -a tls:simple 指的是在主机 foo 上的原始 TLS 打开端口 1000,而不是在不安全端口 1000 上打开的 StartTLS 序列。如果端口 1000 是不安全的,则不会建立连接。