【问题标题】:How to delete one attribute in multiple entries in LDAP如何删除 LDAP 中多个条目中的一个属性
【发布时间】:2018-03-26 13:59:54
【问题描述】:

我的对象类“person”中有一个属性“lastDateConnection”,该属性已移至数据库(出于统计、缓存和性能原因)。 这种重复会引起混乱。

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

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

谢谢, 阿莫里

【问题讨论】:

    标签: ldap openldap


    【解决方案1】:

    当有设置了它的条目时,您不能从架构中删除它。您必须从这些条目中删除它,这需要对每个此类条目进行修改操作。

    【讨论】:

    • 所以我首先需要获取所有用户名,然后在每个条目上循环以删除属性?可以在一个 ldif 中完成吗?
    【解决方案2】:

    最后我做了这样的事情:

    #!/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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-05
      • 1970-01-01
      • 1970-01-01
      • 2018-07-11
      • 2014-07-23
      相关资源
      最近更新 更多