ldap_modify:访问权限不足(50)


9

我正在运行使用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添加到配置数据库,以便完成镜像模式的设置?

Answers:


10

这正是锡罐上所说的。您的DN cn=myuser,dc=mydomain,dc=com没有足够的权限来修改cn=config树。当您尝试“指定配置数据库”时,您使用的是完全不同的DN cn=myuser,cn=config,该DN 显然不存在或您使用了错误的密码。

要进行此类修改,您需要使用一个具有足够特权的帐户来修改各种数据库。在属性中指定“管理员”帐户,即始终拥有所有特权的一个帐户,olcRootDN并在中找到其密码olcRootPW。对于cn=config数据库,这些属性可以在中找到olcDatabase={0}config,cn=config,对于“常规”数据库(通常为HDB类型)可以在中找到olcDatabase={1}hdb,cn=config

您遵循了哪个教程或文档?您似乎无法完全了解您在这里所做的事情。


嗯,我已经在使用olcRootDN帐户了。-D“ cn = myuser,dc = mydomain,dc = com”是我对“ cn = Manager,dc = example,dc = com”的替换。出于安全目的,我用myuser替换了Manager。我希望它能工作。我认为我需要在比数据库更高的级别上指定serverID,...在slapd本身的基本配置中,我希望它在cn = config.ldif中,而不是在olcDatabase \ = \ {1 \}中hdb.ldif,其中找到olcRootDN。
Lynn Owens 2012年

如果您获得“访问权限不足”,则说明您未使用olcRootDN和中配置的管理员用户olcRootPW。根据定义,该用户始终可以访问所有内容。再次提醒您,不同的数据库具有不同的管理员用户。对于cn=config树,请使用下指定的树olcDatabase={0}config,cn=config。不,这些olcServerID属性确实属于cn=configDN。我也在那里。
daff 2012年

谢谢Daff,就是这样。我对配置数据库是{0}数据库这一事实一无所知。确实有一个管理员用户。我给了它一个密码,我的修改没有问题。:)
Lynn Owens 2012年

我想知道您建议您使用什么教程或文档来快速熟悉ldap。因为很明显,我认为我完全不知道我在做什么..
懒惰的编码器

1
@TheLazyCoder 官方文档是全面的,但对于新手来说不是很容易。在Ubuntu的OpenLDAP的文档已经变得更好随着时间的推移可能是一个初学者不够好。除此之外,我还从Packt出版的Matt Butcher的书“ Mastering OpenLDAP”中学到了很多东西。您可能要从这里开始,即使现在有点过时了。
daff 2015年

7

因为我有一个非常类似的问题,所以我尝试了Daff有趣的解决方案,但没有成功。与Lynn Owens相反,我无法在中为管理员添加密码olcDatabase={0}config,cn=config。我终于设法cn=config使用以下命令来修改我的命令:

ldapmodify -Y EXTERNAL -H ldapi:/// -f somefile.ldif

这是有效的,特别是“ -Y EXTERNAL -H ldapi:///”,因为最初创建的cn = admin,dc = ...不能进行这些较低级别的修改。
naisanza

1
如果这在第一次尝试中不起作用,请记住sudo是您的朋友
ratskin
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.