如何删除LDAP中多个条目中的一个属性

时间:2018-03-26 13:59:54

标签: ldap openldap

我的objectClass“person”中有一个属性“lastDateConnection”,它被移动到数据库中(对于stats,cache和performance reason)。 这种重复会造成混淆。

对于一个条目,我只需要这样做:

dn: uid=joe,ou=people,ou=application,dc=client,dc=fr
changetype: modify
delete: dateLastConnection

但是我如何为LDAP中的所有人执行此操作?

我的一些失败::)

#!RESULT ERROR
#!DATE 2018-03-26T13:24:47.588
#!ERROR [LDAP: error code 53 - no global superior knowledge]
dn: cn=schema
changetype: modify
delete: dateLastConnection

#!RESULT ERROR
#!DATE 2018-03-26T13:26:08.755
#!ERROR [LDAP: error code 17 - changetype: attribute type undefined]
dn: cn=schema
changetype: add
objectClass: personn
changetype: modify
delete: dateLastConnection

谢谢你, 阿默里

2 个答案:

答案 0 :(得分:2)

当有条目设置时,您无法从架构中删除它。您必须从中删除,这需要对每个条目进行修改操作。

答案 1 :(得分:1)

最后我做了类似的事情:

#!/bin/bash

echo "Suppression des attributs dateLastConnection"

for i in `ldapsearch -x -h localhost:389 -D "cn=ldapadmin,dc=client,dc=fr" -w "changeme" -b "ou=people,ou=app,dc=client,dc=fr" -s sub "(objectclass=person)" | grep uid=| cut -d : -f 2 | sed 's/^\ //g'`
do

ldapmodify -x -h localhost:389 -D "cn=ldapadmin,dc=client,dc=fr" -w "changeme" << EOF
dn: $i
changetype: modify
delete: dateLastConnection


EOF

done

谢谢EJP