2011-02-08 115 views
1

我正在使用php-ldap来管理linux机器上的posix帐户。我能够在php中搜索数据库。我可以通过命令行“ldapadd”添加用户。但是,当我尝试通过PHP ldap_add添加用户时,出现“Object class violation”错误(errno 65)。ldap_add错误太模糊

我试过了所有我能想到的,但错误没有改变。我甚至想看看是否有替代php-ldap,但还没有找到。

问题是,当我在通用LDAP指南中查找错误时,它说:“此错误返回时添加条目或修改条目违反对象类架构规则。通常会返回附加信息错误详述了违规行为。“然后列出8个可能的原因。

我需要这个更深入的错误,但无法找到它。 ldap_error也没有帮助。任何想法如何在这里挖得更便宜?

+0

一个可能的[原因/解决方案](http://ubuntuforums.org/showthread.php?t=533630) – 2011-02-08 17:10:30

+0

感谢您的想法。虽然我没有使用桑巴舞。我能够用phpldapadmin创建一个用户。 – Jono 2011-02-08 17:17:54

回答

2

我想出了如何深入挖掘。我正在使用将日志转储到/ var/log/{debug,syslog}的Ubuntu

为了获得更多信息,我必须将日志级别增加到/etc/ldap/slapd.d/cn=中的424 config.ldif

然后我能够看到日志中的错误,告诉我我做错了什么......在inetOrgPerson objectClass中使用dc属性。

谢谢。

0

PosixAccount(Linux用户需要的类)具有一些必需属性。您必须在同一操作提供:

  • UID
  • uidNumber
  • 的gidNumber
  • homeDirectory的

也许在一个方法你是一个你是不是?

+0

我在PHP和命令行版本中都有这些值。 – Jono 2011-02-09 18:24:09

1

对象类违规总是意味着您创建的对象违反了模式的期望。

如果您只是将调试级别设置为某个任意高的数字,则slapd会提供一个公制的日志记录。

-1

我们有同样的问题,所以我们用下面的bash命令:

sudo tail -f syslog |grep slapd 

所以,你将有一个真正的时间窗口来向您展示您的LDAP操作细节的反应。