Если вы хотите разрешить изменение всей записи, вам необходимо полностью удалить параметр attrs =
.
Я думаю, вы неправильно понимаете, что делает attrs = entry
. Это не позволяет вам изменять всю запись. Атрибут entry
предоставляет разрешение только самой записи (, а не ее атрибутам ), что в основном позволяет вам только удалить ее. Атрибут children
- это то, что позволяет вам создавать новых дочерних элементов для этой записи. Но как только дочерний элемент создан, вы не можете его изменить, потому что он подпадает под соответствие dn.subtree
, а ваш ACL запрещает изменение чего-либо, кроме удаления записи и создания дочерних элементов.
From http://www.openldap.org/doc/admin24/access-control.html :
Есть два специальных псевдоатрибутов: запись и дочерние элементы. Читать (и, следовательно, вернуть) целевую запись, субъект должен иметь доступ для чтения к атрибуту записи цели. Для проведения поиска субъект должен иметь доступ для поиска к атрибуту записи базы поиска. Добавить или удалить запись, субъект должен иметь доступ на запись к записи атрибут записи И должен иметь доступ на запись к родительскому элементу записи детский атрибут. Чтобы переименовать запись, у субъекта должна быть запись доступ к атрибуту записи И иметь доступ на запись как к дочерние атрибуты старого и нового родителя. Полный примеры в конце этого раздела должны помочь прояснить ситуацию.
Как уже упоминалось, решение состоит в том, чтобы удалить параметр attrs
. Это делает ACL-список по умолчанию для всего, поэтому, когда вы указываете write
, он позволяет вам писать для всего в этой записи.