当我查询我的 openldap-server 时,我不能收到超过 500 个条目。
虽然我做了以下更改:
slapd.conf
# 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.conf
#
# 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
我错过了一些必要的改变吗?
OpenLDAP 搜索限制可以在服务器端或客户端设置。
1. slapd.conf 的数据库部分中的服务器端(旧式配置已弃用但可使用)或 cn=config(推荐)
全球按数据库:
slapd.conf
cn=配置
此参数不是必需的,默认为500。
每个用户:
slapd.conf
cn=配置
在所有情况下
谁可能是:
*
: 全部anonymous
: 未连接用户users
:所有连接的用户dn.exact="cn=xxxx,ou=people...
: 一个用户group/groupOfNames/member="cn=managers,ou=groups...
: 用户组numberOfMaxResult可能是:
unlimited
:无限大小,在生产中使用这种配置是一个非常糟糕的主意number (like 300)
:最大结果记录数。如果全局和每个用户限制大小都完成,则应用每个用户限制。
2.客户端
在 ldap.conf 客户端配置文件中:
请求参数
ldapsearch -z 10 ...
将结果限制为 10所有客户端 API 都应提供此类参数。
如果服务器端和客户端限制大小都完成,则应用最小的数字。
这是一个简短的摘要,有关本主题的更多信息:
限制 OpenLDAP 管理员指南中的配置。