ldapdelete, deseja remover todos os UIDs de pessoas OU, mas preservar OU?

1

Com este cli:

$ ldapdelete -ZZ -W -D "cn=Manager,dc=site,dc=fake" -r  ou=People,dc=site,dc=fake

Eu removo todos os UIDs de People, mas o problema é que também remove People OU. Eu sei que é fácil recriar uma UO vazia, mas gostaria de remover todas UOs de UOs de Pessoas, mas preservar a UO de Pessoas real?

    
por elbarna 29.12.2017 / 18:01

1 resposta

2

Desculpe pelo atraso, mas eu tive que instalar e preencher um servidor LDAP primeiro para testar o procedimento correto. Como ldapdelete lê a lista de objetos de STDIN se não houver nenhum apresentado na linha de comando (ou em um arquivo), você pode usar um pipe como

ldapsearch -ZZ -W -D 'cn=Manager,dc=site,dc=fake' \
-b 'ou=people,dc=site,dc=fake' -s one  dn |\
 grep dn: | cut -b 5- | ldapdelete -ZZ -W -D 'cn=Manager,dc=site,dc=fake'

Isso pedirá a senha duas vezes; talvez você possa usar algum outro método de autenticação.

Em vez de -b ... -s one , você pode ter que definir alguma outra base de busca / escopo / filtro, dependendo da estrutura do diretório.

Deixo a parte grep dn: | cut -b 5- | para aqueles que estão familiarizados com o awk / sed / ... quaisquer outras construções para otimizar. Eu apenas gosto de manter as coisas simples.

    
por 30.12.2017 / 17:26

Tags