12

我在XUBUNTU 12.04上运行OpenLDAP 2.4-28 。

我正在阅读“掌握 OpenLDAP”并与本书一起进行配置。

当我尝试执行以下搜索时(第 47 页):

$ ldapsearch -x -W -D 'cn=Manager,dc=example,dc=com' -b "" -s base

系统提示我输入密码。然后我输入“秘密”,但我收到以下错误:

ldap_bind: Invalid Credentials (49).

以下是我的slapd.conf

# slapd.conf - Configuration file for LDAP SLAPD
##########
# Basics #
##########
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/inetorgperson.schema
pidfile /var/run/slapd/slapd.pid
argsfile /var/run/slapd/slapd.args
loglevel none
modulepath /usr/lib/ldap
# modulepath /usr/local/libexec/openldap
moduleload back_hdb

##########################
# Database Configuration #
##########################
database hdb
suffix "dc=example,dc=com"
rootdn "cn=Manager,dc=example,dc=com"
rootpw secret
directory /var/lib/ldap
# directory /usr/local/var/openldap-data
index objectClass,cn eq

########
# ACLs #
########
access to attrs=userPassword
    by anonymous auth
    by self write
    by * none
access to *
    by self write
    by * none

这是ldap.conf:

# LDAP Client Settings
URI ldap://localhost
BASE dc=example,dc=com
BINDDN cn=Manager,dc=example,dc=com
SIZELIMIT 0
TIMELIMIT 0
4

1 回答 1

16

我看不出上面有什么明显的问题。

可能会被覆盖,但命令行选项将ldap.conf优先,将在 main中ldapsearch忽略,因此唯一可能错误的参数是 URI。(顺序是then或then在当前目录中,尽管环境变量也会影响这一点,请参阅。)BINDDNldap.confETCDIR/ldap.conf~/ldaprc~/.ldaprcldaprcman ldapconf

尝试显式 URI:

ldapsearch -x -W -D 'cn=Manager,dc=example,dc=com' -b "" -s base -H ldap://localhost

或通过以下方式防止默认值:

LDAPNOINIT=1 ldapsearch -x -W -D 'cn=Manager,dc=example,dc=com' -b "" -s base

如果这不起作用,则进行一些故障排除(您可能需要slapd这些二进制文件的完整路径):

  • 确保您slapd.conf正在使用并且正确(以root身份)

    slapd -T test -f slapd.conf -d 65535

    可能有一个剩余的或默认的slapd.d 配置目录,它优先于你的slapd.conf(除非你明确指定你的配置-fslapd.conf在 OpenLDAP-2.4 中正式弃用)。如果您没有获得多页输出,那么您的二进制文件是在没有调试支持的情况下构建的。

  • 停止 OpenLDAP,然后slapd在启用调试的单独终端/控制台中手动启动(以 root 身份,^C 退出)

    slapd -h ldap://localhost -d 481

    然后重试搜索,看看是否能发现问题(不幸的是,在输出的开头会有很多模式噪音)。(注意:slapd不带-u/-g选项运行可能会更改文件所有权,这可能会导致问题,您通常应该使用这些选项,可能 -u ldap -g ldap

  • 如果启用了调试,那么也试试

    ldapsearch -v -d 63 -W -D 'cn=Manager,dc=example,dc=com' -b "" -s base

于 2013-03-26T13:26:37.690 回答