HVN*_*ing 2 ubuntu openldap ldap
从 2.3 开始,OpenLDAP 使用称为 slapd-config 的配置引擎。他们说使用它可以使所有 LDAP 配置都可以即时更改。
这是 /etc/ldap/slapd.d/cn=config.ldif 的头文件:
# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
Run Code Online (Sandbox Code Playgroud)
我已经更改了其中的数据以及具有该标题的其他一些文件,在重新启动 slapd 后,我的更改生效。
如果我手动更改这些文件,还会发生其他情况吗?如果我不需要“即时更改”,我是否应该手动编辑这些文件而不是使用 ldapmodify?哪个应用程序生成了这些文件,何时生成?
注意:我在 Ubuntu 12.04 上使用 openldap-2.4.28
小智 11
如果手动更改 cn=config 中的 LDIF 文件,它们的内容和校验和将不匹配,这不是致命的,但在使用slapcat等工具时会很烦人。
使用ldapmodify以正确的方式修改 cn=config非常痛苦,您最终会积累大量精心手工制作的、单一用途的、一次性的 LDIF 文件。与仅仅编辑 slapd.conf 相比,这是一场噩梦。无论如何,如果您需要更改运行时配置,ldapmodify是您唯一的选择。但是,如果您能承受一些停机时间,您还有另外两种毒药可供选择。
首先,如果您知道自己在做什么,则有一种高度不受支持但又快速又脏的方法,它适用于初始 OpenLDAP 配置:
$ service slapd stop
$ cp -a /etc/ldap/slapd.d /etc/ldap/slapd.d.old
<edit the LDIF files in /etC/ldap/slapd.d>
$ service slapd start
Run Code Online (Sandbox Code Playgroud)
如果 slapd 启动,它应该可以正常工作,但是在启动服务时跟踪 /var/log/syslog总是一个好主意:
$ tail -n 0 -f /var/log/syslog|grep slapd
Run Code Online (Sandbox Code Playgroud)
您可以使用slapcat和slapadd修复校验和错误,如下所述。
其次,还有一种不受支持的方法,它涉及使用slapcat和slapadd(根据这些说明修改):
$ slapcat -n0 -F /etc/ldap/slapd.d > config.ldif
<edit config.ldif>
$ mkdir /etc/ldap/slapd.d.new
$ slapadd -n0 -F /etc/ldap/slapd.d.new -l config.ldif
Run Code Online (Sandbox Code Playgroud)
如果 slapadd 成功且没有错误,则可以迁移到修改后的 slapd.d 目录。根据此线程 slapadd仅添加数据,因此无法覆盖原始 slapd.d 目录内容。因此,我们需要稍微移动一下目录:
$ service slapd stop
$ mv /etc/ldap/slapd.d /etc/ldap/slapd.d.old
$ mv /etc/ldap/slapd.d.new /etc/ldap/slapd.d
$ chown -R openldap:openldap /etc/ldap/slapd.d
$ service slapd start
Run Code Online (Sandbox Code Playgroud)
这两种或多或少不受支持的方法使使用 cn=config 稍微更容易忍受。
归档时间: |
|
查看次数: |
10849 次 |
最近记录: |