2011-02-08 14 views
1

私はLinuxマシン上でposixアカウントを管理するためにphp-ldapを使用しています。私は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) –

+0

ありがとうございました。私はサンバを使用していません。 phpldapadminでユーザーを作成することができました。 – Jono

答えて

2

私は深く掘る方法を考え出しました。私はログを/ var/log/{debug、syslog}にダンプしていたUbuntuを使用しています

詳細を知るために、ログレベルを/etc/ldap/slapd.d/cn=で424に増やす必要がありましたconfig.ldif

次に、inetOrgPerson objectClassでdc属性を使用して、私が間違っていたことを教えてくれたログにエラーが表示されました。

ありがとうございました。

+0

これは興味深い問題です。 – geoffc

0

PosixAccount(Linuxユーザーに必要なクラス)には、いくつかの必須属性があります。あなたは

  • UID
  • uidNumber属性
  • のgidNumber
  • はhomeDirectory

おそらく、1つのアプローチで、あなたはありません1:あなたは、同じ操作で提供しなければなりませんか?

+0

私はPHPとコマンドラインの両方のバージョンでこれらの値を持っています。 – Jono

+0

@Jono:これらは必須なので、objectClassの変更とすべての属性の追加は同じイベントで行わなければなりません。彼らが2つのイベントに来たら、それは失敗するでしょう。 – geoffc

+0

私は決して変更していません。追加のみ。 – Jono

1

オブジェクトクラス違反は、作成したオブジェクトがスキーマの期待に違反していることを示します。

slapdはデバッグレベルを任意の高い数値に設定するだけで、メトリックトンのログを提供します。

-1

我々は同じ問題を抱えていたので、私たちは、次のbashコマンドを使用:だからあなたはあなたのLDAP操作の詳細な反応を示すために、リアルタイムの窓を持っています

sudo tail -f syslog |grep slapd 

を。

関連する問題