使用ldapsearch只返回一个值

时间:2014-01-01 12:46:19

标签: linux openldap

使用 OPENLDAP 服务器我想通过 ldapsearch 从中检索信息。我创建了一个名为 iduriclass 的自定义类,该类用于存储id和uri。在我的ldapsearch命令中,我希望它只返回指定id的uri。

示例:该目录现在包含两个条目id=test uri=server.com/testid=test2 uri=server.com/test2

尝试一下,我得到一个包含服务器中所有uris的 ldif 文件

我希望有一个ldapsearch命令,将test作为参数,并只返回一个值:server.com/test

2 个答案:

答案 0 :(得分:12)

以下是查询ldap服务器的方法。

HOSTNAME=<your ladap hostname>
USERNAME=<your ldap username>
PASSWORD=<your ldap username's password>
SEARCHBASE=<your ldap's search base DN>
QUERYSTRING=test1
PORT=<your ldap port>

ldapsearch -LLL -h ${HOSTNAME} -p $PORT -D cn=${USERNAME} -w ${PASSWORD} -b "${SEARCHBASE}" "(id=${QUERYSTRING})" uri | sed -n 's/^[ \t]*uri:[ \t]*\(.*\)/\1/p'

选项-LLL不会在输出上打印ldap注释。如果ldap不支持-x,则可能需要SASL(简单身份验证)。

答案 1 :(得分:-1)

添加参数 -tt 会将请求的属性值仅作为请求的OP写入文件。没有前面的字段名称或其他任何内容路径可配置为 -T ,否则为/tmp

由于缺乏评论的声誉,我写了这个澄清。