これは、識別名"cn=kerberoskdc,cn=config,dc=example,dc=com"
に対応するデータをロードするためのバックエンドを要求するslapd
です。これはldap操作を実行するときに大変なことになりますが、dnは高速検索の主キーとして使用されます。
bdb_dn2entry
は、slapd
のバックエンドで使用される内部関数で、ldap操作が実行されたときに呼び出されます(この行が表示されるログファイルでどの操作が呼び出しをトリガーするかを確認できるはずです)。
Openldapは通常のslapdデータベースにバックエンドを使用します。バックエンドは、 要求に応じてデータを格納または取得する実際の作業を行います。バックエンドはslapdに静的にコンパイルされるか、 モジュールサポートが有効になっているときに動的にロードされます。
OpenLDAPのbdb
abd hdb
バックエンドは、Oracle Berkeley DB(BDB) パッケージを使用してデータを格納します。
bdb_dn2entry
は、実際にデータベースからデータを取得する機能です。実際の行動がdn2entry.cで行わ
/**
* dn2entry.c
*/
#define bdb_dn2entry BDB_SYMBOL(dn2entry)
int bdb_dn2entry LDAP_P((Operation *op, DB_TXN *tid,
struct berval *dn, EntryInfo **e, int matched,
DB_LOCK *lock));
:その他のLDAPのバックエンド(だけでなく、BDB/HDB用)は、それがソースコードのヘッダファイルproto-bdb.hに関数プロトタイプとして定義されると共有さ
dn2entry
は、キャッシュ/インデックス内のdn
をルックアップし、対応するエントリを返します。要求されたDNが見つからず、matched
がTRUE
の場合、DNの最も近い祖先の情報が返されます。それ以外の場合はEntryInfo e
はNULL
です。
EricLavault..詳細な回答をいただきありがとうございます。私はこの操作を実行している間にこのメッセージを受け取りました。con.auth 'cn = user、dc = example、dc = com'、 'user'言及したDNが異なる場合、異なるDNがトリガされる理由を教えてください。 – Praneetha