加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

向OpenLDAP添加条目

发布时间:2020-12-15 22:38:31 所属栏目:安全 来源:网络整理
导读:我刚刚在Ubuntu Server 12.10上安装了OpenLDAP,并使用slapadd -c -l init.ldif添加了一个ldif文件,如下所示: dn:dc=tpw,dc=uca,dc=madc: tpwobjectClass: dcObjectobjectClass: topobjectClass: domaindn: ou=people,dc=tpw,dc=maou: peopleobjectClass: or
我刚刚在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)来定义包含域名组件的此属性.
> dcObject旨在用于具有适当结构对象类的条目.例如,如果域表示特定组织,则该条目将具有其结构对象类“组织”,并且“dcObject”类将是辅助类.
> domain是一个结构对象类,用于没有存储其他信息的条目.域对象类通常用于占位符或其域与实际实体不对应的条目.

在.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中的索引开头的任何行,例如: :
index objectClass eq.

记住在每次更改slapd.conf中的索引定义之后停止slapd并运行slapindex,并确保在运行slap命令之前已断开所有ldap客户端以防止数据库已在使用消息.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读