Hoi, On 12/09/2012 07:08 PM, mourik jan heupink wrote: > Hoi! > >> Er staat twee keer een regel met result_format erin? > Goed gezien...! De laatste was de bedoeling, en die wordt ook gebruikt > door postfix. Maar thanks! > >> Nee, dat is er niet. Probeer je niet teveel dingen tegelijk in 1 ldap >> object te stoppen, waarbij er spaghettigevaar ontstaat? Het lijkt erop >> dat je gebruikers-object ook tegelijk een groepsobject is? Kun je een >> voorbeeld geven van hoe de objecten in je database er uitzien? >> >> Eerder zei je dat je een posixGroup had met memberUid erin, en nu een >> groupOfNames met zowel members (DNs?) als mail, uid, en rfc822MailMember >> erin? > > Ja, moet misschien uitleggen dat ik van het hergebruiken van de al > bestaande posixGroups ben afgestapt, en nu groupOfNames gebruik, die ik > specifiek voor de mail inricht. > > Een voorbeeld van een groupOfNames: > dn: cn=student-L,ou=mail,dc=example,dc=com > cn: student-L > description: student-L distribution list > objectclass: groupOfNames > objectclass: extensibleObject > mail: studen...@example.com > 1) member: cn=student-2012-L,ou=mail,dc=example,dc=com > 2) member: uid=a_sample,ou=users,dc=example,dc=com > 3) member: cn=Al_Ias,ou=aliases,dc=example,dc=com > > In deze voorbeeld groep zitten dus: > 1) sub-groupOfNames > 2) reguliere gebruikers > 3) aliases
Aha. Ik moet bekennen dat ik het flink complex vind worden, maar als je zelf nog makkelijk kan volgen wat er allemaal gebeurt... Wat is de reden dat je alles in een laag ldap 'wrapt'? Je doet nu zowel alias-expansie met postfix, als met ldap zelf, en dat door elkaar heen. > M'n postfix ldap config bestandjes: > root@sogo:/etc/postfix# cat ldap-mailboxes.cf > server_host = filehost.example.com > search_base = ou=mail,dc=example,dc=com > bind = no > query_filter = (mail=%s) > result_attribute = uid > result_format = %s...@test.example.com > > root@sogo:/etc/postfix# cat ldap-aliases.cf > server_host = filehost.example.com > search_base = ou=aliases,dc=example,dc=com > bind = no > query_filter = (&(objectClass=nisMailAlias)(cn=%u)) > result_attribute = rfc822MailMember > result_format = %s > > root@sogo:/etc/postfix# cat ldap-groups.cf > server_host = filehost.example.com > search_base = ou=mail,dc=example,dc=com > bind = no > query_filter = (&(objectClass=groupOfNames)(mail=%s)) > result_attribute = uid, rfc822MailMember > special_result_attribute = member > leaf_result_attribute = uid > result_format = %s...@test.example.com > > Dit werkt allemaal eigenlijk hartstikke goed voor mailboxen, aliases, > groepen, nested groepen, alles. :-) In welke volgorde zet je nu ldap-mailboxes.cf, ldap-aliases.cf, en ldap-groups.cf in je main.cf? Want postfix probeert ze een voor een, en gaat niet de resultaten van alle drie met elkaar combineren, tenminste, niet in 1 iteratie postfix-alias-expansie, wel in opeenvolgende, waarbij weer de eerste die resultaten geeft wint. Merk op trouwens dat de cn=%u in ldap-aliases.cf nu dus op alle mogelijke domeinen matcht die je mailserver voert. Ik moest de documentatie van postfix over expanding in ldap intern net ook ongeveer 7 keer lezen voordat ik snapte wat er precies gebeurt... :| http://www.postfix.org/LDAP_README.html#example_group > De reden voor die result_format = %s...@test.example.com truc: > Als een gebruiker meerdere mail velden in ldap heeft, wordt alle mail > afgeleverd in dezelfde mailbox van die gebruiker. Zo kun je gemakkelijk > een paar secundaire mailadressen toevoegen, en wordt toch alles vertaald > in u...@example.com. Dit lijkt ook goed te werken. > > Maar nu het probleem/de vraag: > > Ik wil nu ook graag aliases aan een groep kunnen toevoegen. Echter van > een alias hebben we alleen een cn en een rfc822MailMember. Geen 'normale > uid' dus, en daardoor werkt die 'vertaling' met "result_format = > %s...@test.example.com" niet: > > Resultaat van een test postmap query op ldap-groups.cf wordt dan bv: > > us...@example.com,us...@example.com,ali...@gmail.com@example.com > En dat laatste resultaat klopt dus niet. Hm, je zou een rfc822MailMember met test.example.com er al in in het object kunnen zetten naast de uid, en dan gewoon alleen result rfc822MailMember en format %s. :-) > Of zou ik dit anders op een andere manier kunnen oplossen? Laat ik eens schaamteloos mijn eigen oplossing promoten, :-D waarbij ik alleen maar alias expansie van postfix zelf gebruik (result gaat gewoon nog een keer ldap in, net zolang totdat de iteratie stopt naar een extern adres, of naar het adres zelf). In dat geval zou wat je met bovenstaande wil doen er zo uit komen te zien (fantasie-attribuutnamen): Aliassen/Groepen ---------------- dn: cn=Student L,ou=alias,dc=example,dc=com description: student-L distribution list mail_voor: studen...@example.com afleveren_naar: student-201...@example.com afleveren_naar: a_sam...@example.com afleveren_naar: al_...@example.com dn: cn=Alias voor Al Ias,ou=alias,dc=example,dc=com mail_voor: al_...@example.com mail_voor: al_zn_tweede_...@example.com afleveren_naar: alias1@gmail.invalid dn: cn=Sublijst Student L 2012,ou=alias,dc=example,dc=com mail_voor: student-201...@example.com afleveren_naar: jan...@example.com afleveren_naar: pie...@example.com dn: cn=Dit kan dus ook,ou=alias,dc=example,dc=com mail_voor: studen...@example.com afleveren_naar: komtookinresulttere...@example.com dn: cn=Pietje heeft hier geen mailbox,ou=alias,dc=example,dc=com mail_voor: pie...@example.com afleveren_naar: pietje@gmail.invalid Mailboxen --------- dn: uid=a_sample,ou=users,dc=example,dc=com uid: a_sample dn: uid=henk,ou=users,dc=example,dc=com uid: henk dn: uid=jantje,ou=users,dc=example,dc=com uid: jantje -- ldap-alias-maps.cf search_base = ou=alias,dc=example,dc=com bind = no query_filter = (mail_voor=%s) result_attribute = afleveren_naar result_format = %s -- ldap-mailbox-maps.cf: search_base = ou=users,dc=example,dc=com bind = no domain = example.com query_filter = (uid=%u) result_attribute = uid result_format = %s...@users.example.com -- main.cf: virtual_alias_maps = ldap:ldap-alias-maps.cf virtual_mailbox_maps = ldap:ldap-mailbox-maps.cf N.B. een adres dat puur in de mailbox is genoemd is ook geldig, (bijv henk) en heeft geen alias nodig. Het kan wel, als je bijv mail voor henk zowel naar henk z'n mailbox wil doen, en naar een extern adres (alias naar zichzelf wijzen stopt recursie): dn: cn=Henk Speciaal Geval,ou=alias,dc=example,dc=com mail_voor: h...@example.com afleveren_naar: hen...@ergensanders.example.com afleveren_naar: h...@example.com Ik vind dit zelf een stuk makkelijker te begrijpen en na te spelen, omdat de resultaten van afleveren_naar weer opgezocht worden bij mail_voor daarna door postfix, net zolang totdat ofwel het niet gevonden is in mail_voor (of wel maar naar zichzelf wijst, wat ook iteratie stopt) Dan is het dus of een extern adres, ofwel het wordt gezocht in de volgende stap, virtual_mailbox_maps. Daarom vroeg ik net of er een bepaalde reden is waarom je ook op ldap-niveau dingen wil doen met member-dn's in andere objecten stoppen etc? Hans -- To UNSUBSCRIBE, email to debian-user-dutch-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/50c50e97.9040...@knorrie.org