Hallo Dieter, hallo an alle, Dieter Kluenter schrieb: ...
Die zweite Strukturmöglichkeit wäre dann, wie schon von dir angedacht, ein dezentrales Adressbuch
dn: cn=Adressbuch,cn=franz meyer,ou=Verkauf,o=meine Firma,c=de objectClass: organizationalUnit ou: Adressbuch
Jetzt noch die dazugehörende access Regel als Regulärer Ausdruck
access to dn.regex="^(.+,)?cn=([^,]+),ou=Verkauf,o=meine Firma,c=de$$" by dn.exact,expand="cn=$1,ou=Verkauf,o=meine Firma,c=de" write by users read by * none
Da sieht schlimmer aus, als es ist :-) Es beduetet nur, Jeder darf in seinem Subtree schreiben, was immer er möchte. Den RDN ou=Verkauf kann man auch noch als reglären Ausdruck definieren, ich wollte hier nur verdeutlichen, wie eine allgemeingültige Regel geschrieben werden könnte. Wenn du davon ausgehen kannst, daß als Ersatz für ou=Verkauf kein Eintrag mit einem Leerraum genommen wird, also nicht "ou=lokaler Verkauf", sondern immer nur ein Wort steht, dann könntest du statt des Eintrags auch "(.+)," verwenden das wird dann durch $2 expandiert, by dn.exact,expand="cn=$1,ou=$2,o=meine Firma,c=de" write
Achte bitte darauf, das du den "relative distinguished name" entweder nur mit uid oder mit cn beschreibst, sonst funktioniert die Regel nicht.
P.S. Sach mal, warum macht den Thunderbird nicht 72 Zeichen, wenn ich ihm das sage??
Keine Ahnung, was ist Thunderbird?
-Dieter
nicht, dass der Eindruck entsteht, ich hätte kein Interesse mehr an dem von mir aufgerissenen Thema - keineswegs. Nach intensiver(!) Beschäftigung mit regulären Ausdrücken ;-) hänge ich nun wieder ziemlich fest. :-( Im Augenblick kämpfe ich einfach mit dem Zugriff auf die Datenbank. Ich habe gemäß Deiner Anleitung folgende Regel für das "private-addressbook" aufgenommen. access to dn.regex="^(.+,)?uid=([^,]+),ou=auth_user,o=ski-gmbh.com$$" by dn.exact,expand="uid=$1,ou=auth_user,o=ski-gmbh.com" write by users read by * none Das Ergebnis: Zugriff verweigert. Allerdings interpretiere ich nachfolgende Zeilen aus dem Logfile so, dass meine Anfrage zunächst "matched", aber dann einfach weitergegangen wird anstatt die Abarbeitung der Regel abzubrechen. Interpretiere ich das falsch? Feb 18 19:49:30 p2-350 slapd[6986]: => access_allowed: auth access to "uid=michael,ou=auth_user,o=ski-gmbh.com" "userPassword" requested Feb 18 19:49:30 p2-350 slapd[6986]: => dnpat: [1] ^(.+,)?uid=([^,]+),ou=auth_user,o=ski-gmbh.com$$ nsub: 2 Feb 18 19:49:30 p2-350 slapd[6986]: => acl_get: [1] matched Feb 18 19:49:30 p2-350 slapd[6986]: => acl_get: [1] check attr userPassword Feb 18 19:49:30 p2-350 slapd[6986]: <= acl_get: [1] acl uid=michael,ou=auth_user,o=ski-gmbh.com attr: userPassword Feb 18 19:49:30 p2-350 slapd[6986]: => acl_mask: access to entry "uid=michael,ou=auth_user,o=ski-gmbh.com", attr "userPassword" requested Feb 18 19:49:30 p2-350 slapd[6986]: => acl_mask: to all values by "", (=n) Feb 18 19:49:30 p2-350 slapd[6986]: <= check a_dn_pat: uid=$1,ou=auth_user,o=ski-gmbh.com Feb 18 19:49:30 p2-350 slapd[6986]: <= check a_dn_pat: users Feb 18 19:49:30 p2-350 slapd[6986]: <= check a_dn_pat: * Feb 18 19:49:30 p2-350 slapd[6986]: <= acl_mask: [3] applying none(=n) (stop) Feb 18 19:49:30 p2-350 slapd[6986]: <= acl_mask: [3] mask: none(=n) Feb 18 19:49:30 p2-350 slapd[6986]: => access_allowed: auth access denied by none(=n) Das nächste Problem, Schreiben dürfen als User, stellt sich vor dem Hintergrund dieses Problems derzeit leider noch nicht. Gruß, Michael