我为Debian 7安装了OpenLdap v.2.4.39。但在设置过程中,我只有2个后端选项:BDB和HDB。
但我想使用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
但我不确定我是否可以编辑它们。
答案 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