向OpenLDAP添加条目
我刚刚在Ubuntu Server 12.10上安装了OpenLDAP,并使用slapadd -c -l init.ldif添加了一个ldif文件,如下所示:
dn:dc=tpw,dc=uca,dc=ma dc: tpw objectClass: dcObject objectClass: top objectClass: domain dn: ou=people,dc=tpw,dc=ma ou: people objectClass: organizationalUnit objectClass: top dn: ou=groupes,dc=ma ou: groupes objectClass: organizationalUnit objectClass: top dn: uid=admin,ou=people,dc=ma uid: admin sn: Admin cn: Admin objectClass: inetOrgPerson objectClass: organizationalPerson objectClass: person objectClass: top userPassword:: e1NIQX0wRFBpS3VOSXJyVm1EOElVQ3V3MWhReE5xWmM9 mail: admin@uca.ma givenName: admin dn: cn=GI,ou=groupes,dc=ma uniquemember: uid=admin,dc=ma cn: GI objectClass: groupOfUniqueNames objectClass: top dn: cn=GP,dc=ma cn: GP objectClass: groupOfUniqueNames objectClass: top dn: cn=GT,dc=ma cn: GT objectClass: groupOfUniqueNames objectClass: top 现在我的ldap树看起来像这样: 然后我尝试使用Apache Directory Studio添加新的inetOrgPerson,但是我收到了这个错误: [LDAP: error code 80 - index generation failed] 然后我尝试使用phpLDAPadmin做同样的事情,但是我收到了这个错误: Impossible d'ajouter l'objet au serveur LDAP. LDAP dit :: Other (e.g.,implementation specific) error Erreur numéro :: 0x50 (LDAP_OTHER) 然后我创建了一个名为xx.ldif的文件: dn: uid=xx,dc=ma cn: XX givenname: xx mail: xx@edu.uca.ma objectclass: inetOrgPerson objectclass: organizationalPerson objectclass: person objectclass: top sn: XX uid: xx userpassword: toor 我试图通过终端使用此命令添加此条目: sudo ldapadd -x -D cn=Manager,dc=ma -W -f xx.ldif 但我得到了这个错误: ldap_add: Other (e.g.,implementation specific) error (80) additional info: index generation failed 我怎么解决这个问题 ? PS:在另一个场景中我删除了我的数据库,我修改了文件init.ldif,其中包含了我要添加的所有条目,我添加了条目xx,然后我使用slapadd命令导入了我的文件,但是这样我有每次我想添加一个新条目时删除数据库,这是不切实际的. 编辑1: 这是命令slapindex的输出: WARNING! Runnig as root! There's a fair chance slapd will fail to start. Check file permissions! 5370d6f9 /etc/ldap/slapd.conf: line 95: rootdn is always granted unlimited privileges. 5370d6f9 /etc/ldap/slapd.conf: line 112: rootdn is always granted unlimited privileges. 5370d6f9 hdb_db_open: database "dc=tpw,dc=ma": database already in use. 5370d6f9 backend_startup_one (type=hdb,suffix="dc=tpw,dc=ma"): bi_db_open failed! (-1) slap_startup failed 解决方法
第一件事是init.ldif文件似乎配置错??误:
> domainComponent“uca”(dc = uca)缺失,应该有一个条目(dcObject或domain objectClass)来定义包含域名组件的此属性. 在.ldif文件中,您可以用这些2替换第一个条目“dn:dc = tpw,dc = uca,dc = ma”(然后再次删除数据库并重做slapadd命令): dn: dc=uca,dc=ma objectClass: top objectClass: organization objectClass: dcObject dc: uca o: an organization name (mandatory with 'organization' objectClass) dn: dc=tpw,dc=ma objectClass: top objectClass: domain dc: tpw 第二件事:显然你已陷入索引问题.我想你确实想要使用索引,但如果没有,找到并删除以slapd.conf中的索引开头的任何行,例如: : 记住在每次更改slapd.conf中的索引定义之后停止slapd并运行slapindex,并确保在运行slap命令之前已断开所有ldap客户端以防止数据库已在使用消息. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |