Я новичок в ACL OpenLDAP и определил, что, поскольку обработка записей ACL останавливается при первом совпадении предложения , что (последующие записи доступа, таким образом, игнорируются), я должен написать ACL, которые равны WET (напишите все дважды), в отличие от DRY (не повторяйте себя). Все эти WET ACL начнут выглядеть как Пирамида Судьбы , см. Ниже:
access to attrs=uniqueMember,entry
by dn.exact="cn=adm,dc=foo,dc=com" manage
by dn.exact="cn=operators,dc=foo,dc=com" write
by dn.regex="^cn=gimp.+,dc=foo,dc=com$" write
by self write
by * read
access to dn.subtree="ou=people,dc=foo,dc=com"
by dn.exact="cn=adm,dc=foo,dc=com" manage
by dn.exact="cn=operators,dc=foo,dc=com" write
by dn.regex="^cn=gimp.+,dc=foo,dc=com$" read
by self write
by users read
by anonymous auth
access to dn.subtree="dc=foo,dc=com"
by dn.exact="cn=adm,dc=foo,dc=com" manage
by self write
by users search
by anonymous auth
access to *
by dn.exact="cn=adm,dc=foo,dc=com" manage
by * auth
Это просто неправильно и не интуитивно понятно. Я помещаю cn=adm,dc=foo,dc=com
в каждую запись, потому что это DN является администратором. Я что-то пропустил? или списки ACL OpenLDAP МОТЫ по замыслу? Если нет, то каков будет наилучший подход DRY к реализации приведенного выше примера?