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

rua*_*uan 7 ldap openldap ldap-query

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

我试过:

ldapdelete -r 'cn=*,dc=domain,dc=com' -w
Run Code Online (Sandbox Code Playgroud)

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

Est*_*ban 5

ldapdelete 是删除特定的DN,您不能使用通配符。

没有原生的“oneliner”。您可以执行 aldapsearch并将由此搜索产生的 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
Run Code Online (Sandbox Code Playgroud)
  • -s one: 上的这个选项ldapsearch是只检索分支下的第一级孩子dc=domain,dc=com
  • -LLL: 这个选项是有LDIF格式输出
  • -r : 这个选项是递归删除之前找到的一级分支及其子分支
  • awk -F": " '$1~/^\s*dn/{print $2}':这awk是仅打印开始的行dn:并打印dn

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