Slapd 服务无法启动,无法打开 pid 文件

HDW*_*HDW 4 linux ldap

我正在尝试为某些开发人员设置测试 LDAP 服务器,但遇到了一些麻烦。

service slapd start
Run Code Online (Sandbox Code Playgroud)

错误所以我跑

/usr/sbin/slapd -d 1
Run Code Online (Sandbox Code Playgroud)

这最后给了我以下错误:

无法打开 pid 文件“/var/run/ldap/slapd.pid”:13(权限被拒绝)

slapd destroy:释放系统资源。

巴掌停了下来。

/var/run/ldap 的权限如下:

root@pec:/var/run/ldap# ls -ld
drwxr-xr-x 2 openldap openldap 60 2012-07-04 20:45 
Run Code Online (Sandbox Code Playgroud)

所以我不明白为什么仍然拒绝许可。运行 slapd 时,Syslog 提供以下信息:

Jul  4 21:00:27 pec slapd[13758]: @(#) $OpenLDAP: slapd 2.4.21 (Dec 19 2011 15:40:04) $#012#011buildd@allspice:/build/buildd/openldap-2.4.21/debian/build/servers/slapd
Jul  4 21:00:27 pec kernel: [8147247.203100] type=1503 audit(1341428427.953:64):  operation="truncate" pid=13758 parent=20433 profile="/usr/sbin/slapd" requested_mask="::w" denied_mask="::w" fsuid=0 ouid=119 name="/var/run/ldap/slapd.pid"
Run Code Online (Sandbox Code Playgroud)

任何人都可以指出我正确的方向吗?

Sve*_*ven 6

您正在运行什么发行版?您是如何安装 OpenLDAP 的?

您收到的错误来自AppArmor,并告诉您它阻止slapd了创建它的pid文件。

对于 Ubuntu:您的文件中应该有如下内容/etc/apparmor.d/usr.bin.slapd

  /{,var/}run/ldap/* w,
Run Code Online (Sandbox Code Playgroud)

允许这样做。

通常,这应该设置为无需进一步配置即可工作。