„Virtuální“ atributy v adresářovém serveru

Pro uživatele používáme adresářový server (~LDAP) z CentOSu. V LDAPu máme všechny uživatelské účty jak pro maily, tak i pro upload na web případně další služby. Pro každý mailový účet jsou v LDAPu vedené informace o kvótě, kterou přebírá Dovecot. Vznikl požadavek na nastavení doménových kvót, nikoliv jen pro jednotlivé schránky. Ke každému mailovému účtu je tedy nutné přidat informaci o celkovém místě, které může doména využívat. Ke každému mailovému účtu je to kvůli dovecotu, neumí se (nebo nevím jak) zeptat vícekrát na jednotlivé kvóty. Jenže zapisovat jednu hodnotu, která se vztahuje k doméně, ke každému z mailových účtů je čuňárna. Muselo by se to při každé změně všude přepisovat. Snadnější je schopností vlastností adresářového serveru aby informace přenášel z jednoho místa – ze záznamu domény.

Funkce, která to v adresářovém serveru zajišťuje, se jmenuje „Class of Service“. Docela dobrý popis včetně příkladů je v následujících dokumentech:

V našem případě jsem se rozhodl pro „Indirect CoS“, ke každé mailové schránce uvádíme záznam o doméně do které patří, tento záznam je uveden jako DN. Z této domény si pak přes CoS vytahujeme kvótu.

[img_assist|nid=84|title=Directory Server – Indirect CoS|desc=|link=none|align=center|width=784|height=371]

Ukázka naší definice COS

dn: cn=domenovaKvotaCOS,o=sluzby,o=hosting
description: generovani domenove kvoty k zaznamu uzivatele
objectClass: top
objectClass: ldapsubentry
objectClass: cossuperdefinition
objectClass: cosIndirectDefinition
cosIndirectSpecifier: Domena
cosAttribute: DomenovaKvota override
cn: domenovaKvotaCOS

Nedivte se názvům atributů, použil jsem jen něco pro příklad.

  • objectClass... – volbou objectClass určíme jaký druh CoS používáme
  • cosIndirectSpecifier: Domena – tímto si určíme, že DN objektu ze kterého budeme tahat hodnotu „virtuálního“ atributu DomenovaKvota je v atributu Domena. U každé mailové schránky musíme zapsat do atributu Domena celé DN záznamu odkud se bude hodnota virtuálního atributu DomenovaKvota brát.
  • cosAttribute: DomenovaKvota override – Definice „virtuálního“ atributu a jak se bude zacházet s hodnotou převzatou z „šablony“ (objektu na který se odkazujeme v atributu Domena). Override určuje, že převzatá doména přepisuje případnou lokální hodnotu. V odkazované dokumentaci máte všechny možnosti.