Ldapsearch 和范围限制

Ldapsearch and range limit

我的 ldapsearch 命令有问题。

我想使用 ldapsearch 二进制文件列出 LDAP 组中有限数量的成员。例如,我只想获取请求的成员 1 到 50。

ldapsearch -x -h <ldap_serv_addr> -p <ldap_port> -b "<base-dn>" "(&(|(objectClass=inetOrgPerson)(objectClass=user))(memberOf=<group_dn>))"

这个请求给了我(并且工作正常)所有组成员。我只想要 "range" 个。

我知道我必须使用类似 member;range=1-50 的东西,但我不知道将它放在 ldapsearch 命令的什么地方。

当您return为一个对象而不是一组对象设置多值属性时,使用带有范围的成员是一种解决方案。在这个例子中,我正在搜索一个特定的组和 returning 组 50 名成员(您的组的正确 objectClass 可能会有所不同,请检查一个对象。或者,如果它是一个唯一的名称,只需从过滤器中省略 objectClass ):

ldapsearch -x -h <ldap_serv_addr> -p <ldap_port> -b "<base-dn>" "(&(objectClass=groupOfUniqueNames)(cn=<groupCN>))" "member;range=0-50"

在您的示例查询中,您要求识别将 memberOf 设置为 groupDN 的对象——这不是对象上的单个多值属性,而是一组对象。您可以使用分页控制设置对象的大小。 如何请求分页结果取决于client/language(有些 LDAP 服务器不支持分页操作)。使用 ldapsearch,并假设 LDAP 服务器支持分页查询,您的命令行将是:

ldapsearch -x -h <ldap_serv_addr> -p <ldap_port> -E pr50/prompt -b "<base-dn>" "(&(|(objectClass=inetOrgPerson)(objectClass=user))(memberOf=<group_dn>))"

-E pr50/prompt设置页面大小为50,提示继续下一页。

我不知道有什么方法可以在第一页结果后非交互地停止,搜索一个组和 return 它的成员列表更直接。