OpenLDAP的。切换到mdb-backend(内存映射数据库)

时间:2014-06-25 11:44:50

标签: ldap debian openldap

我为Debian 7安装了OpenLdap v.2.4.39。但在设置过程中,我只有2个后端选项:BDB和HDB。

enter image description here

但我想使用MDB(http://www.openldap.org/doc/admin24/backends.html)。 AFAIK它很稳定。如何选择它作为后端?

谢谢!

PS。我可以在下面的文件中看到有关hdb的提及:

/etc/ldap/slapd.d# grep -nr hdb *
cn=config/cn=module{0}.ldif:7:olcModuleLoad: {0}back_hdb
cn=config/olcBackend={0}hdb.ldif:3:dn: olcBackend={0}hdb
cn=config/olcBackend={0}hdb.ldif:5:olcBackend: {0}hdb
cn=config/olcDatabase={1}hdb.ldif:3:dn: olcDatabase={1}hdb
cn=config/olcDatabase={1}hdb.ldif:6:olcDatabase: {1}hdb

但我不确定我是否可以编辑它们。

2 个答案:

答案 0 :(得分:3)

模块在那里,deconf模板不是。

$ ls /usr/lib/ldap/back_mdb*
/usr/lib/ldap/back_mdb-2.4.so.2  /usr/lib/ldap/back_mdb-2.4.so.2.8.3      /usr/lib/ldap/back_mdb.la  /usr/lib/ldap/back_mdb.so

要启用,我们需要先加载模块。

$ cat someEpicLdif.ldif
# we need to load the mdb module first
dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulePath: /usr/lib/ldap
olcModuleLoad: back_mdb

# now we configure our mdb backend
dn: olcDatabase=mdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcMdbConfig
olcDatabase: mdb
olcSuffix: dc=ldap_is_bananas,dc=org
olcDbDirectory: /var/lib/ldap
olcRootDN: cn=admin,dc=ldap_is_bananas,dc=org
olcRootPW: changeme
olcDbIndex: objectClass eq
olcLastMod: TRUE
olcMonitoring: TRUE
olcDbEnvFlags: writemap
olcDBNoSync: TRUE
olcAccess: to attrs=userPassword by dn="cn=admin,dc=ldap_is_bananas,dc=org" write by anonymous auth by self write by * none
olcAccess: to attrs=shadowLastChange by self write by * read
olcAccess: to dn.base="" by * read
olcAccess: to * by dn="cn=admin,dc=ldap_is_bananas,dc=org" write by * read

请不要复制并粘贴man slapd-mdb和man slapd-config作为配置选项并提供自己的配置选项。

然后使用ldapadd添加新的后端,如果你正在使用SASL绑定......

$ sudo ldapadd -Y EXTERNAL -H ldapi:/// -f ldap_is_bananas.ldif

答案 1 :(得分:1)

在Debian中,MDB后端自slapd-2.4.39启用,自Debian jessie (当前测试的代号)后可用发行)。

假设您正在使用Debian / stable(又名 wheezy ),答案很简单:

  

您的slapd版本是在没有 mdb 支持的情况下构建的,因此您无法使用它。

如果您使用slapd> 2.4.39(根据您的评论似乎就是这种情况),您必须手动配置后端(因为还没有支持MDB的debconf模板)。

结帐man slapd-mdb