【问题标题】:OpenLdap. Switch to mdb-backend (Memory-Mapped Database)OpenLdap。切换到 mdb-backend(内存映射数据库)
【发布时间】:2014-06-25 11:44:50
【问题描述】:

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

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

谢谢!

附言。我可以在以下文件中看到有关 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

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

【问题讨论】:

  • 为什么要提供grep -nr hdb *的输出?我不明白这在您的问题中有何意义。
  • 我已经发布了使用我安装的当前数据库后端。我想我应该更改这些值以迁移到 mdb。
  • 虽然它无助于回答您的问题,但您介意用其内容的文字描述替换该图像吗?在一张巨大的蓝色图像上,文本真的很小,难以阅读(而且很容易用文字表达,debconf 只是让您在AB 之间进行选择)。删除图像可能会让视障人士也能帮助您...

标签: ldap debian openldap


【解决方案1】:

模块在那里,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

【讨论】:

    【解决方案2】:

    在 Debian 中,MDB 后端自 slapd-2.4.39 以来已启用,自 Debian jessie(当前 testing 发行版的代号)起可用。

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

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

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

    结帐man slapd-mdb

    【讨论】:

    • 我已经安装了 jessie 的 slapd 和 2.4.39 我当前版本的 slapd。 # dpkg -l | grep slapd ii slapd 2.4.39-1 amd64 OpenLDAP 服务器(slapd)
    • 安装 slapd-2.4.39 没有 slapd.conf 但“man slapd-mdb”建议在 slapd.conf 中添加“database mdb”选项以启用 mdb。
    • 这是真的。正如我现在所看到的,在 slapd v2.4.42 中,可以在 ncurses 设置页面上看到 MDB。
    猜你喜欢
    • 2017-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-22
    • 1970-01-01
    • 1970-01-01
    • 2012-02-09
    相关资源
    最近更新 更多