在 CentOS 7 上安装 OpenLDAP

在 CentOS 7 上安装 OpenLDAP

我很按照这个 OpenLDAP 一步步教程http://www.server-world.info/en/note?os=CentOS_7&p=openldap&f=1 重要提示:我正在使用 CentOS 7

但当我在第一部分尝试slapd以以下内容开始时systemctl start slapd,它给了我一个错误我无法解决。

我在网络、StackOverflow 和 Server Fault 中查找,但任何人都遇到了同样的问题。

这是错误

# systemctl start slapd
Job for slapd.service failed. See 'systemctl status slapd.service' and 'journalctl -xn' for details.

这里堆栈跟踪或当我检查时出现错误systemctl status

 [root@localhost openldap]# systemctl status slapd -l
    slapd.service - OpenLDAP Server Daemon
       Loaded: loaded (/usr/lib/systemd/system/slapd.service; disabled)
       Active: failed (Result: exit-code) since dv 2015-01-09 12:03:41 CET; 3min 9s ago
      Process: 5507 ExecStart=/usr/sbin/slapd -u ldap -h ${SLAPD_URLS} $SLAPD_OPTIONS (code=exited, status=1/FAILURE)
      Process: 5492 ExecStartPre=/usr/libexec/openldap/check-config.sh (code=exited, status=0/SUCCESS)

    gen 09 12:03:41 localhost.localdomain runuser[5495]: pam_unix(runuser:session): session opened for user ldap by (uid=0)
    gen 09 12:03:41 localhost.localdomain check-config.sh[5492]: Checking configuration file failed:
    gen 09 12:03:41 localhost.localdomain check-config.sh[5492]: 54afb58d ldif_read_file: checksum error on "/etc/openldap/slapd.d/cn=config/olcDatabase={0}config.ldif"
    gen 09 12:03:41 localhost.localdomain check-config.sh[5492]: 54afb58d unable to open file "/openldap/slapd.pid": 2 (No such file or directory)
    gen 09 12:03:41 localhost.localdomain slapcat[5500]: DIGEST-MD5 common mech free
    gen 09 12:03:41 localhost.localdomain slapd[5507]: @(#) $OpenLDAP: slapd 2.4.39 (Jun  9 2014 23:23:12) $
                                                               [email protected]:/builddir/build/BUILD/openldap-2.4.39/openldap-2.4.39/servers/slapd
    gen 09 12:03:41 localhost.localdomain slapd[5509]: DIGEST-MD5 common mech free
    gen 09 12:03:41 localhost.localdomain systemd[1]: slapd.service: control process exited, code=exited status=1
    gen 09 12:03:41 localhost.localdomain systemd[1]: Failed to start OpenLDAP Server Daemon.
    gen 09 12:03:41 localhost.localdomain systemd[1]: Unit slapd.service entered failed state.

我的问题是:我该怎么办?有什么解决办法吗?或者解决问题的指导原则是什么?

我该如何开始解决这个问题?

答案1

使用CentOS OpenLDAP 帮助页面。它非常简洁,没有废话。在执行此操作之前,请将所有配置文件恢复到其原始状态。可以通过以下方式确认:

# rpm -V openldap-server

如果上述命令显示任何文件被修改 - 请删除并重新安装 openldap-server 或从备份中获取文件。

答案2

我也使用该指南在 CentOS 7 上设置了 OpenLDAP。有一次我仅openldap-servers在没有客户端的情况下进行安装,结果完全失败了;存在权限问题,并且 slapd 无法启动等。我同意其他人的建议,重新开始并严格按照说明进行操作。

但即便如此,指南中仍有一些问题需要记录下来:

  • 如果您从指南复制粘贴到 ldif 文件中,请务必修复任何换行,它们会给我带来错误(chdomain.ldif特别是)。
  • 在 中basedomain.ldifo: Server Worlddc: Server应该更改为正确的域,否则会收到此错误:

    ldap_add:命名违规(64)附加信息:单值命名属性“dc”的值与条目中的现有值冲突

  • 最后的ldapadd命令也应该改为正确的域,否则您将收到无效凭据错误。

这些错误确实不是直观的,但我能够完成指南并配置 OpenLDAP。

答案3

您的配置文件中存在某种错误。至少,您在创建初始配置文件时犯了一个错误,并且可能更改了本教程中所述的内容:

教程指出:

 pidfile     /run/openldap/slapd.pid

但是 OpenLDAP 尝试创建/openldap/slapd.pid,但它无法工作,因为/openldap它不作为目录存在。

从头开始。

相关内容