我正在尝试在端口400上启动第二个slapd实例,并且/var/log/syslog从标题报告错误。
到目前为止,我采取的步骤是:

  • 1)将/etc/ldap/slapd.d复制到/etc/ldap2/slapd.d
  • 2)已复制
    /etc/default/slapd到/etc/default/slapd2,看起来像这样:http://pastebin.com/QKA436v8
  • 3)将/etc/init.d/slapd复制到/etc/init.d/slapd2,如下所示:
    http://pastebin.com/sqVzZ1jA

  • 这是/var/log/syslog的输出:
    Jun  6 12:39:39 luka-VB-Ubuntu slapd2[3138]: @(#) $OpenLDAP: slapd  (Ubuntu) (Sep 15 2015 18:19:13) $#012#011buildd@lgw01-53:/build/openldap-2QUgtL/openldap-2.4.31/debian/build/servers/slapd
    Jun  6 12:39:39 luka-VB-Ubuntu slapd2[3138]: ldif_read_file: Permission denied for "/etc/ldap2/slapd.d/cn=config.ldif"
    Jun  6 12:39:39 luka-VB-Ubuntu slapd2[3138]: slapd stopped.
    Jun  6 12:39:39 luka-VB-Ubuntu slapd2[3138]: connections_destroy: nothing to destroy.
    Jun  6 12:39:39 luka-VB-Ubuntu kernel: [11912.288340] audit: type=1400 audit(1465209579.742:68): apparmor="DENIED" operation="open" profile="/usr/sbin/slapd" name="/etc/ldap2/slapd.d/cn=config.ldif" pid=3138 comm="slapd2" requested_mask="r" denied_mask="r" fsuid=117 ouid=117
    

    编辑:

    这些是该文件及其所在目录(/etc/ldap2/slapd.d/)的许可权:
    drwxr-xr-x 3 openldap openldap 4096 Jun  6 15:16 ./
    drwxr-xr-x 5 root     root     4096 Jun  1 14:23 ../
    drwxr-x--- 3 openldap openldap 4096 Jun  1 14:23 cn=config/
    -rw------- 1 openldap openldap  480 Jun  6 15:16 cn=config.ldif
    

    这些是用于cn = config/目录的:
    drwxr-x--- 3 openldap openldap 4096 Jun  1 14:23 .
    drwxr-xr-x 3 openldap openldap 4096 Jun  6 15:16 ..
    -rw-rw-rw- 1 openldap openldap  436 Jun  1 14:23 cn=module{0}.ldif
    drw-rw-rw- 2 openldap openldap 4096 Jun  1 14:23 cn=schema
    -rw-rw-rw- 1 openldap openldap  378 Jun  1 14:23 cn=schema.ldif
    -rw-rw-rw- 1 openldap openldap  396 Jun  1 14:23 olcBackend={0}hdb.ldif
    -rw-rw-rw- 1 openldap openldap  513 Jun  1 14:23 olcDatabase={0}config.ldif
    -rw-rw-rw- 1 openldap openldap  657 Jun  1 14:23 olcDatabase={-1}frontend.ldif
    -rw-rw-rw- 1 openldap openldap 1131 Jun  1 14:23 olcDatabase={1}hdb.ldif
    

    等效的默认文件的权限如下(/etc/ldap/slapd.d/):
    drwxr-xr-x 3 openldap openldap 4096 Mar 18 13:51 ./
    drwxr-xr-x 5 root     root     4096 May 31 16:49 ../
    drwxr-x--- 3 openldap openldap 4096 Mar 18 14:06 cn=config/
    -rw------- 1 openldap openldap  478 Mar 18 13:51 cn=config.ldif
    

    对于cn = config/:
    drwxr-x--- 3 openldap openldap 4096 Mar 18 14:06 .
    drwxr-xr-x 3 openldap openldap 4096 Mar 18 13:51 ..
    -rw------- 1 openldap openldap  436 Mar 18 13:51 cn=module{0}.ldif
    drwxr-x--- 2 openldap openldap 4096 Mar 18 13:51 cn=schema
    -rw------- 1 openldap openldap  378 Mar 18 13:51 cn=schema.ldif
    -rw------- 1 openldap openldap  396 Mar 18 13:51 olcBackend={0}hdb.ldif
    -rw------- 1 openldap openldap  513 Mar 18 13:51 olcDatabase={0}config.ldif
    -rw------- 1 openldap openldap  657 Mar 18 13:51 olcDatabase={-1}frontend.ldif
    -rw------- 1 openldap openldap 1131 Mar 18 14:06 olcDatabase={1}hdb.ldif
    

    最佳答案

    我刚在Ubuntu 1604上遇到了同样的问题。查看日志,结果发现这是一个限制条件。

    slapd[10245]: ldif_read_file: Permission denied for "/home/vagrant/ldap/slapd.d/cn=config.ldif"
    kernel: [77635.949937] audit: type=1400 audit(1489959083.939:65): apparmor="DENIED" operation="open" profile="/usr/sbin/slapd" name="/home/vagrant/ldap/slapd.d/cn=config.ldif" pid=10245 comm="slapd" requested_mask="r" denied_mask="r" fsuid=0 ouid=113
    

    如果您遇到相同的错误,则需要编辑/etc/apparmor.d/usr.sbin.slapd以包括路径,或者仅使用以下命令禁用配置文件:
    ln -s /etc/apparmor.d/usr.sbin.slapd /etc/apparmor.d/disable/
    service apparmor reload
    

    如果您安装了aa-disable slapd,则apparmor-utils会执行相同的操作。如果您仍然想看到警告,请使用aa-complain slapd

    关于linux -/etc/ldap2/slapd.d/cn=config.ldif的权限被拒绝,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37655509/

    10-09 03:46