- PR -

OpenLDAPのデータの追加・更新・削除について

投稿者投稿内容
tanabo
常連さん
会議室デビュー日: 2003/04/24
投稿数: 34
投稿日時: 2003-07-29 12:07
be1300ccさん

データの削除は,以下のように行います。
ldapdelete -D "cn=Manager,dc=tec,c=JP" -w secret "削除するDN"
また,再帰的に削除する方法もあるようです。
ldapdelete -D "cn=Manager,dc=tec,c=JP" -w secret -r "削除するDN"

詳しくはldapdeleteのマニュアルをご覧ください。

BDBのデータは、
/usr/local/var
/usr/local/etc
/usr/local/share
のどこかでしょうね。
すいません,よく分かりません 
be1300cc
ベテラン
会議室デビュー日: 2002/07/04
投稿数: 88
投稿日時: 2003-07-29 13:28
tanaboさん

ご回答ありがとうございます。
マニュアルを見ながらデータの削除を行っているのですが、
やはり
ldapdelete -D "cn=Manager,dc=tec,c=JP" -w secret "削除するDN"
ldapdelete -D "cn=Manager,dc=tec,c=JP" -w secret -r "削除するDN"
を行っても、ldap_sasl_interactive_bind_s: No such attribute (16)が出てしまい
削除ができません。

何かまだ設定がおかしいのでしょうか?
tanabo
常連さん
会議室デビュー日: 2003/04/24
投稿数: 34
投稿日時: 2003-07-29 13:48
be1300ccさん

これだけの情報では原因は検出しにくいです。

とりあえず、以下の方法を試してみてください。
1.-xオプションをつけて実行する。
2.パスワードに誤りがないかどうか確認する。

これでだめな場合は,デバッグモードでエラーの原因を
探る必要があります。

be1300cc
ベテラン
会議室デビュー日: 2002/07/04
投稿数: 88
投稿日時: 2003-07-29 14:18
tanaboさん

-xオプションをつけた場合
ldapdelete -x -D "dc=tec,dc=jp" -w secret -r "dc=tec,dc=jp"
ldap_bind: Inappropriate authentication (48)

パスワードの方は間違いはありませんでした。

因みに、デバッグモードでエラーの原因を検出するにはどうすればよろしいのでしょうか?

ご享受お願いします。
be1300cc
ベテラン
会議室デビュー日: 2002/07/04
投稿数: 88
投稿日時: 2003-07-29 14:30
tanaboさん

一応、デバッグモードで実行させてみました。
結果は以下のようになっております。

[root@wintel openldap]# slapd -d 255
@(#) $OpenLDAP: slapd 2.0.23-Release (木 6月 27 00:42:33 JST 2002) $
root@miclas:/var/tmp/mlbld.355/rpm/BUILD/openldap-2.0.23/servers/slapd
daemon_init: <null>
daemon_init: listen on ldap:///
daemon_init: 1 listeners to open...
ldap_url_parse_ext(ldap:///)
daemon: socket() failed errno=97 (Address family not supported by protocol)
daemon: bind(6) failed errno=98 (Address already in use)
daemon: bind(6) failed
slapd stopped.
connections_destroy: nothing to destroy.
tanabo
常連さん
会議室デビュー日: 2003/04/24
投稿数: 34
投稿日時: 2003-07-29 14:47
be1300ccさん

このログではslapdが起動していないように見えますが・・・。
デバッグモードでバグを見るには,
slapd -d 255 -f <<slapd.confを指定>>
で起動した後にldapdeleteコマンドを実行すると
ログが流れます。

ldap_bind: Inappropriate authentication (48)
というエラーは,認証が適切ではないということですので,
DNとパスワードに間違いがある、もしくはkrb認証を使用している場合の
設定ミスによるエラーのようです。

searchやaddは成功しますか?成功しないなら環境を1から再作成した方が
楽かもしれませんね。
be1300cc
ベテラン
会議室デビュー日: 2002/07/04
投稿数: 88
投稿日時: 2003-07-29 15:05
tanaboさん

slapd -d 255 -f <<slapd.confを指定>>で起動させ、ldapdeleteコマンドを実行させた
のですが、ログは出ずに、ldap_bind: Inappropriate authentication (48)のエラー
しか出ませんでした。

確かにパスワードの件は、slad.confで"secret"LDIFファイルの方でも"secret"と指定し
てあり、コマンド入力の際にも同じものを入れている為、間違っていないと思います。

seachは成功しますが、addが失敗します。
先日、BerkleyDBとOpenLDAPを再インストールしましたが、やはりKerberos関連がおかしい
のでしょうか?

また、一般的にはHeidmdal Kerberos と MIT Kerberos のどちらを使用するのでしょうか?

よろしくお願いします。
tanabo
常連さん
会議室デビュー日: 2003/04/24
投稿数: 34
投稿日時: 2003-07-29 15:24
be1300ccさん

ログが出るのはslapdを実行したターミナル上ですが,
それでも出ませんでしたか?

kerberos認証に関しては、私は使用したことがないので
正直分かりません。すみません。

一点気になるのは,
>確かにパスワードの件は、slad.confで"secret"LDIFファイルの方でも"secret"と指定し
>てあり、コマンド入力の際にも同じものを入れている為、間違っていないと思います。
の部分です。ここで質問です。

1.データを削除しようとしているユーザはrootdnですか?
2.あるいはLDAPサーバ内に追加したユーザでしょうか?
3.rootdnを使用して削除しようとしているなら,rootdnをLDAPサーバ内に登録しましたか?

基本的にrootdnはLDAPサーバに登録しません。
もしrootdnをエントリとしてLDAPサーバに登録した場合は,
slapd.confのaccess control部分を変更して、
アクセス権を設定してやる必要があります。またはそのエントリを
削除する必要があります。

なぜなら,通常LDAPサーバに登録されたユーザエントリ(passwordを持っているエントリ)で
LDAPサーバにアクセスする場合は,access controlを設定しなければならないからです。
searchで成功してadd,deleteで失敗するとすれば,権限の問題も絡んでいるかもしれません。

スキルアップ/キャリアアップ(JOB@IT)