openldap sizelimit。无法接收超过 500 个条目

openldap sizelimit。无法接收超过 500 个条目

当我查询我的 openldap 服务器时,我无法收到超过 500 个条目。

尽管我做了以下更改:

slapd配置文件

    # This is the main slapd configuration file. See slapd.conf(5) for more
    # info on the configuration options.

    #######################################################################
    # Global Directives:       
    .....

     # The maximum number of entries that is returned for a search operation
    sizelimit 10000

ldap配置文件

#
# LDAP Defaults
#

# See ldap.conf(5) for details
# This file should be world readable but not world writable.

#BASE   dc=example,dc=com
#URI    ldap://ldap.example.com ldap://ldap-master.example.com:666

SIZELIMIT       10000
#TIMELIMIT      15
#DEREF          never

# TLS certificates (needed for GnuTLS)
TLS_CACERT      /etc/ssl/certs/ca-certificates.crt

重新启动我的机器后,查询以下命令:

ldapsearch -x -h localhost -b "dc=XXX,dc=XXX,dc=XXX"

我收到:

# search result
search: 2
result: 4 Size limit exceeded

# numResponses: 501
# numEntries: 500

我是否遗漏了一些必要的改变?

答案1

OpenLDAP 搜索限制可以在服务器端或客户端设置。

1. slapd.conf 的数据库部分中的服务器端(旧式配置已弃用,但仍可使用)或 cn=config(推荐)

按数据库全局划分:

slapd配置文件

sizelimit <numberOfMaxResult>

cn=配置

olcSizeLimit: <numberOfMaxResult>

此参数非强制,默认为500

每用户:

slapd配置文件

limits <Who> size=<numberOfMaxResult>

cn=配置

olcLimits: <Who> size=<numberOfMaxResult>

在所有情况下

WHO或许 :

*: 全部

anonymous:未连接用户

users:所有已连接的用户

dn.exact="cn=xxxx,ou=people...:一位用户

group/groupOfNames/member="cn=managers,ou=groups...:用户组

最大结果数或许:

unlimited:无限大小,在生产中使用此配置是一个非常糟糕的主意

number (like 300):最大结果记录数。

如果全局和每个用户的大小都已限制,每个用户限制适用

2. 客户端

在ldap.conf客户端配置文件中:

SIZELIMIT <numberOfMaxResult>

请求参数

ldapsearch -z 10 ...将结果限制为 10

所有客户端 API 都应该提供这样的参数。

如果服务器端和客户端都限制大小,适用最小数字

这是一个短的摘要,有关此主题的更多信息:

man slapd.conf
man slapd-config

OpenLDAP 管理员指南中的限制配置

相关内容