Yum 更新现在 SLAPD 将无法启动

Yum 更新现在 SLAPD 将无法启动

首先我要说的是,我已经使用 *nix 超过 20 年了;但是,我对 openldap 的经验很少。我曾在一台已经运行多年的服务器上运行过 openldap (slapd)。今天,我运行了 yum update,它更新了不少软件包,包括 openLDAP,现在我的 ldap 服务器无法启动。

以下是来自 rpm -qa 的 openldap 版本:

openldap-clients-2.4.40-12.el6.x86_64
openldap-servers-2.4.40-12.el6.x86_64
openldap-devel-2.4.40-12.el6.x86_64
compat-openldap-2.3.43-2.el6.x86_64
openldap-2.4.40-12.el6.x86_64

一旦 yum update 完成(没有错误),我们的 LDAP 服务器就不会运行。我尝试了一个简单的服务 slapd start,但失败了。slaptest -u 现在返回:

# slaptest -u
581260f7 config error processing cn={5}passwordSelfReset,cn=schema,cn=config: 
slaptest: bad configuration file!

这也是我的 slapd.conf 文件(在 yum 更新之前有效):

include         /etc/openldap/schema/core.schema
include         /etc/openldap/schema/cosine.schema
include         /etc/openldap/schema/inetorgperson.schema
include         /etc/openldap/schema/nis.schema
include         /etc/openldap/schema/misc.schema
include         /etc/openldap/schema/passwordSelfReset.schema

allow bind_v2

pidfile     /var/run/openldap/slapd.pid
argsfile    /var/run/openldap/slapd.args

modulepath /usr/lib64/openldap

moduleload syncprov.la
moduleload unique.la

database monitor
access to *
        by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read
        by dn.exact="cn=admin,dc=am5up,dc=com" read
        by * none

database    bdb
suffix      "dc=am5up,dc=com"
rootdn      "cn=admin,dc=am5up,dc=com"
rootpw {SSHA}0yFFC0BTYdZLDRNtSHVz1I6YC4zJ3Z0AZ09123
directory   /var/lib/ldap

index objectClass                       eq,pres
index ou,cn,mail,surname,givenname      eq,pres,sub
index uidNumber,gidNumber               eq,pres
index uid,memberUid                     eq,pres,sub
index nisMapName,nisMapEntry            eq,pres,sub

overlay unique
unique_attributes mail

ServerID        1 "ldap://ldap.am5up.com"

overlay         syncprov
syncprov-checkpoint     10 1
syncprov-sessionlog     100

更新:因此我删除了 /etc/openldap/slapd.d 中的所有内容,然后运行:

slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/

现在 slaptest -u 成功返回,但 service slapd start 仍然失败。失败后我能找到的唯一日志条目在 /var/log/ldap.log 中:

@(#) $OpenLDAP: slapd 2.4.40 (May 10 2016 23:30:49) $#012#[email protected]:/builddir/build/BUILD/openldap-2.4.40/openldap-2.4.40/build-servers/servers/slapd

答案1

对于遇到此问题的其他任何人 - 我已经找出了问题所在。在升级过程中,稍新的版本要求主机与配置文件中的服务器定义相匹配。

例如,您的 slapd.conf 文件中有一行如下:

ServerID 1 "ldap://myldapserver"

然后,您的启动脚本(或者当您启动 slapd 时)必须将主机定义为“ldap://myldapserver”。

这似乎很有道理;然而,通过今天的麻烦,我发现在我最初安装时添加的默认 /etc/init.d/slapd 文件将主机列为空白。因此,默认启动脚本基本上执行:

slapd -h "" -u <user> -g <group>

一旦我编辑了启动脚本以确保 slapd 上的 -h 开关与我的配置文件中的内容相匹配,一切都会重新开始正常工作。

相关内容