我正在运行一个使用 SSL 服务进行通信的 OpenLDAP 2.4 服务器。它适用于查找。
我正在尝试添加镜像模式复制。
这是我正在执行的命令:
ldapmodify -D "cn=myuser,dc=mydomain,dc=com" -H ldaps://myloadbalancer -W -f /etc/ldap/ldif/server_id.ldif
这是我的 server_id.ldif:
dn: cn=config
changetype: modify
replace: olcServerID
olcServerID: 1 myserver1
olcServerID: 2 myserver2
这是我的 slapd.d 文本文件树中的 cn\=config.ldif:
dn: cn=config
objectClass: olcGlobal
cn: config
olcArgsFile: /var/run/slapd/slapd.args
olcPidFile: /var/run/slapd/slapd.pid
olcToolThreads: 1
structuralObjectClass: olcGlobal
entryUUID: ff9689de-c61d-1031-880b-c3eb45d66183
creatorsName: cn=config
createTimestamp: 20121118224947Z
olcLogLevel: stats
olcTLSCertificateFile: /etc/ldap/certs/ldapscert.pem
olcTLSCertificateKeyFile: /etc/ldap/certs/ldapskey.pem
olcTLSCACertificateFile: /etc/ldap/certs/ldapscert.pem
olcTLSVerifyClient: never
entryCSN: 20121119022009.770692Z#000000#000#000000
modifiersName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
modifyTimestamp: 20121119022009Z
但不幸的是我得到了这个:
Enter LDAP Password:
modifying entry "cn=config"
ldap_modify: Insufficient access (50)
如果我尝试指定配置数据库,我会得到以下信息:
ldapmodify -H 'ldaps://myloadbalancer/cn=config' -D "cn=myuser,cn=config" -W -f ./server_id.ldif
Enter LDAP Password:
ldap_bind: Invalid credentials (49)}
有人知道如何将 serverID 添加到配置数据库以便完成镜像模式的设置吗?
答案1
这正是它所说的。您的 DNcn=myuser,dc=mydomain,dc=com
没有足够的权限来修改cn=config
树。当您尝试“指定配置数据库”时,您使用的是完全不同的 DN,cn=myuser,cn=config
显然它不存在或您使用了错误的密码。
要进行此类修改,您需要使用具有足够权限来修改各种数据库的帐户。在属性中指定“admin”帐户(即始终具有所有权限的帐户),olcRootDN
其密码可在 中找到olcRootPW
。对于cn=config
数据库,这些属性可在 中找到olcDatabase={0}config,cn=config
;对于“常规”数据库(通常为 HDB 类型),可在 中找到olcDatabase={1}hdb,cn=config
。
您遵循了哪个教程或文档?您似乎并不完全了解自己在这里所做的事情。
答案2
由于我遇到了类似的问题,我尝试了一个非常有趣的解决方案,但无济于事。与 Lynn Owens 的情况相反,我无法在 中为管理员添加密码olcDatabase={0}config,cn=config
。我最终设法cn=config
使用以下命令修改了我的密码:
ldapmodify -Y EXTERNAL -H ldapi:/// -f somefile.ldif
答案3
感谢 Chicken Suop!最后,我能够在 cn=config 中修改日志级别,如下所示:
$ sudo ldapmodify -Y EXTERNAL -H ldapi:/// <<EOF
dn: cn=config
changetype: modify
replace: olcLogLevel
olcLogLevel: 256
EOF
我在这里发布答案,而不是这个答案的评论因为要显示上面的代码标志。