我刚刚开始使用 openLdap 2.4,但遇到了一些麻烦,我看到的所有示例似乎都参考了使用文本配置文件 slapd.conf 的先前版本,但从我看到的有关 v2.4 的讨论来看,这已被弃用。
我想也许我需要添加一个用户,并以他们的身份登录> 但是当我尝试运行 ldapadd 命令时,系统提示我输入密码:
Enter LDAP Password:
ldap_bind: Invalid credentials (49)
注意:我通过 yum(在 fedora 15 中)安装了 openldap 服务器,并且安装了 phpldapadmin,但如果有人有建议,也可以在命令行上尝试。
安装并启动后,我从搜索中得到以下响应:
# ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts
# extended LDIF
# LDAPv3
# base <> with scope baseObject
# filter: (objectclass=*)
# requesting: namingContexts
dn:
namingContexts: dc=my-domain,dc=com
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1
如果有帮助的话我很乐意删除并重新安装服务器,有人可以提供适用于 2.4 版新设置的提示链接吗?
答案1
slapd.conf 在 OpenLDAP 2.4 中仍然有效,尽管在文档中它可能被“淡化”了。
答案2
这是老问题了,但搜索时经常会出现这样的问题而没有答案。首先,运行 slappasswd 来生成密码。
slappasswd
New password: ************
Re-enter new password: *************
{SSHA}OM5mbC3/kQPAg8MH6FOqXkATjLjt2IZ2
然后使用该值来填充后端的配置。
ldapmodify -Q -Y EXTERNAL -H ldapi:/// << E0F
dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}qUoTRPwppaedqHQTgYOPYWokr3SiXjbK
E0F
您的 dn 可能与此处显示的 dn 不同。在 RHEL7 上,配置数据库位于 /etc/openldap/slapd.d/cn=config。现在您可以使用默认 rootdn 登录。
如果愿意,您可以为根 DN 设置自己的值:
ldapmodify -Q -Y EXTERNAL -H ldapi:/// << E0F
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=manager,dc=example,dc=com
E0F
答案3
[2022] OpenLDAP 2.4.49
CVVS 在 2014 年给出的答案是几乎仍然适用。只需进行 2 处更改即可使其再次起作用:
- 数据库的索引现在
olcDatabase={1}mdb
代替了{2}hdb
。(cn=config
保留)。 - 您必须使用修改类型
replace
而不是add
。
把它放在一起:
ldapmodify -Q -Y EXTERNAL -H ldapi:/// << E0F
dn: olcDatabase={1}mdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}qUoTRPwppaedqHQTgYOPYWokr3SiXjbK
E0F
答案4
这是我的工作解决方案:
ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b cn=config olcRootDN=cn=admin,dc=my,dc=company,dc=com dn olcRootDN olcRootPW
现在通过以下方式创建新密码:
NEW_PWD={{TYPE_NEW_PASSWORD_HERE}}
PWD_HASH=$(slappasswd -s ${NEW_PWD})
echo "Your password hash is \"${PWD_HASH}\"."
粘贴以下代码:
ldapmodify -Y EXTERNAL -H ldapi:/// << E0F
dn: olcDatabase={1}mdb,cn=config
replace: olcRootPW
olcRootPW: ${PWD_HASH}
E0F
你会得到:
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: olcDatabase={1}mdb,cn=config
olcRootDN: cn=admin,dc=my,dc=company,dc=com
olcRootPW: {SSHA}k1S8N/A4eb7Ds8oBgAhb9TmPfVT9vl2U
要修复两个密码访问(旧密码和新密码),请粘贴:
OLD_PWD=admin
ldappasswd -h localhost -p 389 -x -D "cn=admin,dc=my,dc=company,dc=com" -w "${OLD_PWD}" -a "${OLD_PWD}" -s "${NEW_PWD}"