--On Monday, November 07, 2011 7:05 PM +0100 Igor Blanco iblanco@binovo.es wrote:
Hello everyone,
I'm trying to configure the uniqueness overlay in Debian Squeeze (OpenLDAP 2.4.23) using "cn=config" but I can't figure how to do it and can't find any good doc about it, the FAQ-O-Matic wasn't very helpful this time.
I've added a new "olcModuleLoad=unique" attribute in "cn=module{0},cn=config" and it hasn't complained, but how and where do I set "olcUniqueURI" ? in "olcDatabase={1}hdb,cn=config" ? This attribute does not seem to be present in my OpenLDAP installation, do I have to add any new schema?
Any reference to documentation explaining how to configure "unique" overlay within "cn=config" would be much appreciated. A dump of a "cn=config" branch correctly configured would be fantastic.
First, I would seriously advise you to upgrade to 2.4.26. 2.4.23 has numerous, serious issues. You may also want to grab the patch for ITS#7030 from the git repo (http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=commitdiff;h=eae46d35d252f5e7cfd623984f0896e951d507c9)
As for adding unique, it's pretty trivial. I have a perl script that does it using Net::LDAP, but you can trivially change this for ldapadd:
my $ldap = Net::LDAP->new('ldapi://%2fopt%2fzimbra%2fopenldap%2fvar%2frun%2fldapi/') or die "$@"; my $mesg = $ldap->bind("cn=config", password=>"$ldap_root_password"); $mesg->code && die "Bind: ". $mesg->error . "\n"; my $dn="cn=module{0},cn=config"; $mesg = $ldap->modify( $dn, add =>{olcModuleLoad => 'unique.la'}, ); my $bdn="olcDatabase={2}hdb,cn=config"; $mesg = $ldap ->search( base=>"$bdn", filter=>"(objectClass=olcUniqueConfig)", scope=>"sub", attrs => ['1.1'], );
my $size = $mesg->count; if ($size == 0) { $dn="olcOverlay=unique,$bdn"; $mesg = $ldap->add( "$dn", attr => [ 'olcUniqueURI' => 'ldap:///?mail?sub', 'objectclass' => ['olcOverlayConfig', 'olcUniqueConfig', ], ] ); $mesg->code && warn "failed to add entry: ", $mesg->error ; } $ldap->unbind;
The basic idea is you add a new entry, olcOverlay=unique,<base database DN> with the objectClasses and the unique URI.
--Quanah
--
Quanah Gibson-Mount Sr. Member of Technical Staff Zimbra, Inc A Division of VMware, Inc. -------------------- Zimbra :: the leader in open source messaging and collaboration