Прошу не указывать на http://www.openldap.org/doc/admin24/access-control.html , перечитал ее 10 раз но что-то не доходить до меня и не получается.access to dn.subtree="ou=dom3,dc=system,dc=ru"
by dn.one="ou=admin,ou=dom3,dc=system,dc=ru" write
by dn.children="ou=dom3,dc=system,dc=ru" read
by self read
by anonymous auth
by * none
Суть в том чтобы все которые находится в ou=dom3,dc=system,dc=ru могли читать только в свое дерево, дальше никуда, а все в ou=admin,ou=dom3,dc=system,dc=ru могли писать в тоже самое дерево. Все ето работает но как-то некрасиво и не грамотно звучить не переписывать его с regexы,..а если 50 поддерев, мне каждому отдельно прописывать?!
При такови acl:
логи такие:access to dn.base="dc=ru"
by dn.children="ou=system,dc=ru" read
by * none
access to dn.base="dc=system,dc=ru"
by dn.children="dc=system,dc=ru" read
by * none
access to dn.regex="ou=([^,]+),dc=system,dc=ru$"
by dn.regex="(.+,)?$1,dc=system,dc=ru$$" read
by * none
access to dn.regex="(.+,)?ou=([^,]+),dc=system,dc=ru$"
by dn.regex="(.+,)?$1,dc=system,dc=ru$$" read
by dn.regex="^cn=([^,]+),ou=admin,$1,dc=system,dc=ru$$" write
by * none
Jul 17 14:52:18 ps3 slapd[1076]: => access_allowed: auth access to "cn=admin1,ou=admin,ou=dom3,dc=system,dc=ru" "userPassword" requested
Jul 17 14:52:18 ps3 slapd[1076]: => dn: [1] dc=ru
Jul 17 14:52:18 ps3 slapd[1076]: => dn: [2] dc=system,dc=ru
Jul 17 14:52:18 ps3 slapd[1076]: => dnpat: [3] ou=([^,]+),dc=system,dc=ru$ nsub: 1
Jul 17 14:52:18 ps3 slapd[1076]: => acl_get: [3] matched
Jul 17 14:52:18 ps3 slapd[1076]: => acl_get: [3] attr userPassword
Jul 17 14:52:18 ps3 slapd[1076]: => match[0]: 20 50
Jul 17 14:52:18 ps3 slapd[1076]: o
Jul 17 14:52:18 ps3 slapd[1076]: u
Jul 17 14:52:18 ps3 slapd[1076]: =
Jul 17 14:52:18 ps3 slapd[1076]: d
Jul 17 14:52:18 ps3 slapd[1076]: o
Jul 17 14:52:18 ps3 slapd[1076]: m
Jul 17 14:52:18 ps3 slapd[1076]: 3
Jul 17 14:52:18 ps3 slapd[1076]: ,
Jul 17 14:52:18 ps3 slapd[1076]: d
Jul 17 14:52:18 ps3 slapd[1076]: c
Jul 17 14:52:18 ps3 slapd[1076]: =
Jul 17 14:52:18 ps3 slapd[1076]: s
Jul 17 14:52:18 ps3 slapd[1076]: y
Jul 17 14:52:18 ps3 slapd[1076]: s
Jul 17 14:52:18 ps3 slapd[1076]: t
Jul 17 14:52:18 ps3 slapd[1076]: e
Jul 17 14:52:18 ps3 slapd[1076]: m
Jul 17 14:52:18 ps3 slapd[1076]: ,
Jul 17 14:52:18 ps3 slapd[1076]: d
Jul 17 14:52:18 ps3 slapd[1076]: c
Jul 17 14:52:18 ps3 slapd[1076]: =
Jul 17 14:52:18 ps3 slapd[1076]: r
Jul 17 14:52:18 ps3 slapd[1076]: u
Jul 17 14:52:18 ps3 slapd[1076]: => match[1]: 23 31
Jul 17 14:52:18 ps3 slapd[1076]: d
Jul 17 14:52:18 ps3 slapd[1076]: o
Jul 17 14:52:18 ps3 slapd[1076]: m
Jul 17 14:52:18 ps3 slapd[1076]: 3
Jul 17 14:52:18 ps3 slapd[1076]: => slap_access_allowed: result not in cache (userPassword)
Jul 17 14:52:18 ps3 slapd[1076]: => acl_mask: access to entry "cn=admin1,ou=admin,ou=dom3,dc=system,dc=ru", attr "userPassword" requested
Jul 17 14:52:18 ps3 slapd[1076]: => acl_mask: to value by "", (=0)
Jul 17 14:52:18 ps3 slapd[1076]: <= check a_dn_pat: (.+,)?$1,dc=system,dc=ru$$
Jul 17 14:52:18 ps3 slapd[1076]: <= check a_dn_pat: *
Jul 17 14:52:18 ps3 slapd[1076]: <= acl_mask: [2] applying none(=0) (stop)
Jul 17 14:52:18 ps3 slapd[1076]: <= acl_mask: [2] mask: none(=0)
Jul 17 14:52:18 ps3 slapd[1076]: => slap_access_allowed: auth access denied by none(=0)
Jul 17 14:52:18 ps3 slapd[1076]: => access_allowed: no more rules