Hi,
I want to hide an attribute to members of a group by each other but allowing these members to see this attribute of all other users. So I use this ACLs:
olcAccess: {0}to filter=(memberof=cn=group,ou=special,o=abc.net) attrs=PrivateAttr by group.exact="cn=group,ou=special,o=abc.net" none by * break olcAccess: {1}to attrs=PrivateAttr by group.exact="cn=group,ou=special,o=abc.net" ssf=128 read olcAccess: {2}to attrs=userPassword by self write by anonymous auth by * none olcAccess: {3}to * by * read
uid=user1,ou=people,o=abc.net http://abc.net/ and uid=user2,ou=people,o=abc.net http://abc.net/ are both members of cn=group,ou=special,o=abc.net http://abc.net/ and the memberOf overlay seems to work also the filter in acl#0:
dn: uid=user1,ou=people,o=abc.net memberOf: cn=group,ou=special,o=abc.net
dn: uid=user2,ou=people,o=abc.net memberOf: cn=group,ou=special,o=abc.net
but if user2 searches for PrivateAttr of user1 it gets the attribute.
can anyone give me a hint what’s wrong? many thanks, christian
here the log: Jan 25 09:16:56 openldap1 slapd[58851]: => mdb_entry_get: found entry: "uid=user2,ou=people,o=abc.net" Jan 25 09:16:56 openldap1 slapd[58851]: => access_allowed: search access to "o=abc.net" "entry" requested Jan 25 09:16:56 openldap1 slapd[58851]: => acl_get: [4] attr entry Jan 25 09:16:56 openldap1 slapd[58851]: => acl_mask: access to entry "o=abc.net", attr "entry" requested Jan 25 09:16:56 openldap1 slapd[58851]: => acl_mask: to all values by "uid=user2,ou=people,o=abc.net", (=0) Jan 25 09:16:56 openldap1 slapd[58851]: <= check a_dn_pat: * Jan 25 09:16:56 openldap1 slapd[58851]: <= acl_mask: [1] applying read(=rscxd) (stop) Jan 25 09:16:56 openldap1 slapd[58851]: <= acl_mask: [1] mask: read(=rscxd) Jan 25 09:16:56 openldap1 slapd[58851]: => slap_access_allowed: search access granted by read(=rscxd) Jan 25 09:16:56 openldap1 slapd[58851]: => access_allowed: search access granted by read(=rscxd) Jan 25 09:16:56 openldap1 slapd[58851]: => access_allowed: search access to "uid=user1,ou=people,o=abc.net" "uid" requested Jan 25 09:16:56 openldap1 slapd[58851]: => acl_get: [4] attr uid Jan 25 09:16:56 openldap1 slapd[58851]: => acl_mask: access to entry "uid=user1,ou=people,o=abc.net", attr "uid" requested Jan 25 09:16:56 openldap1 slapd[58851]: => acl_mask: to value by "uid=user2,ou=people,o=abc.net", (=0) Jan 25 09:16:56 openldap1 slapd[58851]: <= check a_dn_pat: * Jan 25 09:16:56 openldap1 slapd[58851]: <= acl_mask: [1] applying read(=rscxd) (stop) Jan 25 09:16:56 openldap1 slapd[58851]: <= acl_mask: [1] mask: read(=rscxd) Jan 25 09:16:56 openldap1 slapd[58851]: => slap_access_allowed: search access granted by read(=rscxd) Jan 25 09:16:56 openldap1 slapd[58851]: => access_allowed: search access granted by read(=rscxd) Jan 25 09:16:56 openldap1 slapd[58851]: => access_allowed: read access to "uid=user1,ou=people,o=abc.net" "entry" requested Jan 25 09:16:56 openldap1 slapd[58851]: => acl_get: [4] attr entry Jan 25 09:16:56 openldap1 slapd[58851]: => acl_mask: access to entry "uid=user1,ou=people,o=abc.net", attr "entry" requested Jan 25 09:16:56 openldap1 slapd[58851]: => acl_mask: to all values by "uid=user2,ou=people,o=abc.net", (=0) Jan 25 09:16:56 openldap1 slapd[58851]: <= check a_dn_pat: * Jan 25 09:16:56 openldap1 slapd[58851]: <= acl_mask: [1] applying read(=rscxd) (stop) Jan 25 09:16:56 openldap1 slapd[58851]: <= acl_mask: [1] mask: read(=rscxd) Jan 25 09:16:56 openldap1 slapd[58851]: => slap_access_allowed: read access granted by read(=rscxd) Jan 25 09:16:56 openldap1 slapd[58851]: => access_allowed: read access granted by read(=rscxd) Jan 25 09:16:56 openldap1 slapd[58851]: => access_allowed: result not in cache (PrivateAttr) Jan 25 09:16:56 openldap1 slapd[58851]: => access_allowed: read access to "uid=user1,ou=people,o=abc.net" "PrivateAttr" requested Jan 25 09:16:56 openldap1 slapd[58851]: => access_allowed: search access to "uid=user1,ou=people,o=abc.net" "memberOf" requested Jan 25 09:16:56 openldap1 slapd[58851]: => acl_get: [2] attr PrivateAttr Jan 25 09:16:56 openldap1 slapd[58851]: => acl_mask: access to entry "uid=user1,ou=people,o=abc.net", attr "PrivateAttr" requested Jan 25 09:16:56 openldap1 slapd[58851]: => acl_mask: to value by "uid=user2,ou=people,o=abc.net", (=0) Jan 25 09:16:56 openldap1 slapd[58851]: <= check a_group_pat: cn=group,ou=special,o=abc.net Jan 25 09:16:56 openldap1 slapd[58851]: => mdb_entry_get: found entry: "cn=group,ou=special,o=abc.net" Jan 25 09:16:56 openldap1 slapd[58851]: <= check a_authz.sai_ssf: ACL 128 > OP 256 Jan 25 09:16:56 openldap1 slapd[58851]: <= acl_mask: [1] applying read(=rscxd) (stop) Jan 25 09:16:56 openldap1 slapd[58851]: <= acl_mask: [1] mask: read(=rscxd) Jan 25 09:16:56 openldap1 slapd[58851]: => slap_access_allowed: read access granted by read(=rscxd) Jan 25 09:16:56 openldap1 slapd[58851]: => access_allowed: read access granted by read(=rscxd) Jan 25 09:16:56 openldap1 slapd[58851]: connection_read(35): no connection!
openldap-technical@openldap.org