如何从LDAP中删除所有记录?

时间:2017-07-18 08:33:21

标签: ldap openldap ldap-query

是否可以通过单行推荐从LDAP中删除所有条目?

我试过了:

ldapdelete -r 'cn=*,dc=domain,dc=com' -w

但它不起作用。我没有更好的想法; /

2 个答案:

答案 0 :(得分:2)

ldapdelete是删除特定DN,不能使用wilcard。

没有原生的“oneliner”。您可以执行ldapsearch并将此搜索产生的DN列表提供给ldapdelete

类似的东西:

ldapsearch -LLL -s one -b "dc=domain,dc=com" "(cn=*)" dn | awk -F": " '$1~/^\s*dn/{print $2}' > listOfDNtoRemove.txt && ldapdelete -r -f listOfDNtoRemove.txt
  • -s oneldapsearch上的此选项仅检索分支dc=domain,dc=com下的第一级子项
  • -LLL:此选项是LDIF格式输出
  • -r:此选项以递归方式删除先前找到的第一级分支及其子级
  • awk -F": " '$1~/^\s*dn/{print $2}':此awk仅打印以dn:开头并打印dn
  • 的值的行

注意:ldapdelete还会从标准输入中读取DN列表,因此如果要避免使用临时文件,可以将ldapsearch结果直接传送到ldapdelete

答案 1 :(得分:0)

使用 HDB 后端

您可以尝试这种方法:转到 { "q0.Results": {"Name":"My Burberry - Eau de Parfum"} } 目录并运行以下命令:

/var/lib/ldap

最好在运行此命令之前关闭 sudo rm __db.* *.bdb log.* 服务器。

确保在执行此操作之前备份文件

使用 MDB 后端

与上面类似,但文件名不同:

slapd