【问题标题】:Permission denied for /etc/ldap2/slapd.d/cn=config.ldif/etc/ldap2/slapd.d/cn=config.ldif 的权限被拒绝
【发布时间】:2016-10-05 22:45:04
【问题描述】:

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

这是 /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

【问题讨论】:

  • 被命名的文件必须是 slapd 可读和可写的,相邻的文件和目录及其内容也是如此,递归直到关闭。
  • 你的意思是 /etc/ldap2 的内容必须是 slapd 可读和可写的(我假设你的意思是 openldap 用户)?
  • 我已经编辑了我的原始帖子,但我认为权限还可以。如果有的话,/etc/ldap2/slapd.d/ 甚至比 /etc/ldap/slapd.d/ 更多。
  • 你可以想你所想,但错误信息与你不符。
  • 我明白了,但即使给 /etc/ldap2/slapd.d/ 一个完整的 777 权限,错误日志仍然保持不变。

标签: linux ldap ubuntu-14.04 openldap


【解决方案1】:

我刚刚在 Ubuntu 1604 上遇到了同样的问题。查看日志,原来是 apparmor 限制。

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

如果您安装了apparmor-utilsaa-disable slapd 也会这样做。如果您仍想看到警告,请使用aa-complain slapd

【讨论】:

  • 天哪。我自己永远不会找到这个。
猜你喜欢
  • 2015-07-10
  • 2015-08-30
  • 2021-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-09-29
相关资源
最近更新 更多