我尝试将用户添加到现有且正在运行的 openldap 服务器。该服务器由其他人设置(很难联系到...)并且正在积极使用。现在我想添加新用户,但由于访问权限不足而陷入困境。
我尝试添加用户的命令如下:
ldapadd -H ldap://servername -D "cn=admin,ou=..." -W -f ldap-userfile
我得到的答复是
adding new entry "cn=username,ou=..."
ldap_add: Insufficient access (50)
additional info: no write access to parent
上述命令中使用的信息来自
ldapsearch -x -LLL uid=*
这是唯一一个admin
名字带有 的。
注意:我是安装了 ldap 的服务器上的 root 权限用户,因此我可以执行几乎任何操作。我唯一应该避免的是永久更改任何密码,因为其他人也必须执行一些任务。
我确实查看了 /etc/openldap,但无济于事。我对 openldap 一无所知,所以它对我没有帮助。在下面/etc/openldap/certs/password
我可以找到密码,但我不知道该用它做什么。
如果有帮助:服务器正在运行CentOS 6.10,openldap版本是2.4.40。
编辑:已解决 请参阅下面我自己的回答。
答案1
好的,我用这个解决了回答。
总结一下:我知道该用哪个 id
ldapsearch -Y EXTERNAL -Q -H ldapi:/// -LLL -o ldif-wrap=no -b cn=config '(objectClass=olcDatabaseConfig)' olcAccess
然后跑了
ldapadd -H ldapi://servername -D "cn=Manager,..." -W -f ldapfile
答案2
为新用户创建 LDIF 文件 以下是用于创建新用户的示例 LDIF 文件。
# cat adam.ldif
dn: uid=adam,ou=users,dc=tgs,dc=com
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: adam
uid: adam
uidNumber: 16859
gidNumber: 100
homeDirectory: /home/adam
loginShell: /bin/bash
gecos: adam
userPassword: {crypt}x
shadowLastChange: 0
shadowMax: 0
shadowWarning: 0
现在,使用ldapadd
命令和上述ldif
文件在我们的 OpenLDAP 目录中创建一个名为的新用户,adam
如下所示:
# ldapadd -x -W -D "cn=ramesh,dc=tgs,dc=com" -f adam.ldif
Enter LDAP Password:
adding new entry "uid=adam,ou=users,dc=tgs,dc=com"