LDAP (slapd) problema de ACL - pode adicionar, mas não modificar entradas

1

Eu tenho um problema com a configuração da ACL de um servidor LDAP (slapd). A seguinte entrada da ACL está ativa como a primeira regra aplicável:

{0}to dn.subtree="ou=some,ou=where,ou=beneath,dc=the,dc=rain,dc=bow"  attrs=entry,children by users write

Agora a coisa estranha que acontece é que, dada essa regra, eu posso adicionar uma entrada ao respectivo DN, mas se eu quiser modificá-lo com o mesmo usuário, então eu obtenho

0x32 (LDAP_INSUFFICIENT_ACCESS)

Alguém pode me dar uma dica sobre qual poderia ser o problema?

    
por Jonas 31.05.2012 / 00:12

1 resposta

1

Se você quiser permitir a modificação de toda a entrada, você precisa remover completamente a opção attrs= .
Eu acho que você está entendendo mal o que o attrs=entry faz. Ele não permite modificar toda a entrada. O atributo entry somente concede permissão para a entrada em si ( não seus atributos ), o que basicamente permite que você a exclua. O atributo children é o que permite criar novos filhos nessa entrada. Mas assim que o filho é criado, você não pode modificá-lo porque ele está sob a correspondência dn.subtree , e sua ACL proíbe a modificação de qualquer outra coisa que não excluir a entrada e criar filhos.

De link :

There are two special pseudo attributes entry and children. To read (and hence return) a target entry, the subject must have read access to the target's entry attribute. To perform a search, the subject must have search access to the search base's entry attribute. To add or delete an entry, the subject must have write access to the entry's entry attribute AND must have write access to the entry's parent's children attribute. To rename an entry, the subject must have write access to entry's entry attribute AND have write access to both the old parent's and new parent's children attributes. The complete examples at the end of this section should help clear things up.

Como mencionado, a solução é remover a opção attrs . Isso faz com que o ACL seja padronizado para tudo, então quando você especifica write , ele permite que você escreva tudo nessa entrada.

    
por 16.06.2012 / 05:37