Linux、Solaris、AIX、またはHP-UNIX環境でのLDAPツールの使用

eDirectoryには次のLDAPツールが含まれており、これを使用してLDAPディレクトリサーバを管理できます。これらのツールは/opt/novell/eDirectory/binに格納されています。

ツール 説明

ice

エントリをファイルからLDAPディレクトリにインポートし、ファイルのディレクトリ内のエントリを変更し、エントリをファイルにエクスポートし、ファイルの属性とクラス定義を追加します。

ldapadd

LDAPディレクトリに新しいエントリを追加します。

ldapdelete

LDAPディレクトリサーバからエントリを削除します。ldapdeleteツールは、LDAPサーバとの接続を開始し、エントリのバインドと削除を行います。

ldapmodify

LDAPサーバとの接続を開始し、エントリのバインド、変更、追加を行います。

ldapmodrdn

LDAPディレクトリサーバ内のエントリの相対識別名(RDN)を変更します。LDAPサーバとの接続を開始し、エントリのRDNのバインドと変更を行います。

ldapsearch

LDAPディレクトリサーバでエントリを検索します。LDAPサーバとの接続を開始し、バインドを行い、指定されたフィルタを使用して検索を実行します。フィルタは、RFC 2254で定義されたLDAPフィルタの文字列表現に準拠している必要があります。

ndsindex

インデックスの作成、一覧表示、一時停止、再開、削除を行います。

詳細については、『LDAP Libraries for C Guide』の「LDAP Tools」を参照してください。

LDAPツールを安全に実行するには、Linux、Solaris、AIX、およびHP-UXシステムでのeDirectory操作に関するセキュリティを確保するを参照し、安全にeDirectoryとLDAPを接続するためのコマンドラインによるLDAP操作にDERファイルを指定します。


LDAPツール

LDAPユーティリティは、エントリの削除、変更、追加、スキーマの拡張、相対識別名の変更、エントリの新規コンテナへの異動、検索インデックスの作成、検索の実行に使用できます。


ldapadd

ldapaddユーティリティを使用して、新しいエントリを追加します。構文は次のとおりです。

ldapadd [-c] [-C] [-l] [-M] [-P] [-r] [-n] [-v] [-F] [-l 制限] [-M[M]] [-d  デバッグレベル] [-e キーファイル名] [-D  バインドDN] [[-W ]| [-w パスワード]] [-h  LDAPホスト] [-p LDAPポート] [-P バージョン] [-Z[Z]] [-f ファイル]

注:  NetWareサーバでは、このユーティリティはladdと呼ばれます。

-fオプションを指定すると、ldapaddにより変更がファイルから読み出されます。-fオプションを指定しない場合、ldapaddは変更をstdinから読み出します。

ヒント:  ldapユーティリティからの出力はstdoutに送られます。出力が表示される前にユーティリティが存在する場合、出力はファイルにリダイレクトされます。例:ldapadd [オプション] > out.txt

オプション 説明

-a

新しいエントリを追加します。ldapmodifyのデフォルトは、既存エントリの変更です。ldapaddとして呼び出されると、このフラグは常にオンになります。

-r

デフォルトでは既存の値を置換します。

-c

連続操作モード。エラーが通知されても、ldapmodifyは変更動作を継続します。デフォルトでは、エラーが通知されると終了します。

-f ファイル

エントリ情報を標準入力ではなくLDIFファイルから読み出します。レコードの最大長は4096行です。

-F

replica:で始まる入力行の内容に関わりなく、すべての変更を無条件で適用します(デフォルトでは、replica:行は使用中のLDAPサーバホストおよびポートと比較され、replogレコードを実際に適用するかどうか決定します)。


すべてのLDAPツールの共通オプション

すべてのLDAPツールに共通するオプションがいくつかあります。次の表は、これらのオプションを表示したものです。

オプション 説明

-C

次の参照を有効にします。(匿名バインド)

-d デバッグレベル

LDAPデバッグレベルを設定します。このオプションを有効にするには、ldapmodifyをコンパイルするときにLDAP_DEBUGの定義が必要です。

-D バインドDN

バインドDNを使用してLDAPディレクトリにバインドします。バインドDNには、RFC 1779に定義されている文字列表現のDNを指定します。

-e キーファイル名

SSLバインドのため、ファイル名の確認を行います。

-f ファイル

ファイルから行を読み取り、1行ごとにLDAP検索を実行します。この場合、コマンドラインに指定されたフィルタは、%sが最初に出現した個所がファイルに指定された行で置換されるというパターンとして機能します。1つのハイフン(-)文字がファイルとして指定された場合には、標準入力から行が読み取られます。

-h LDAPホスト

LDAPサーバの実行場所となっている代替ホストを指定します。

-l 制限

接続タイムアウト(秒)を指定します。

-M

Manage DSA ITコントロールを有効にします。(非致命的)

-MM

Manage DSA ITコントロールを有効にします。(致命的)

-n

完了した場合の結果を表示しますが、実際にはエントリを変更しません。-vと組み合わせて使用すると、デバッグ時に便利です。

-p LDAPポート

LDAPサーバが監視している代替TCPTMポートを指定します。

-P バージョン

LDAPのバージョン(2または3)を指定します。

-v

冗長モードが設定され、多くの診断メッセージが標準出力に書き込まれます。

-w パスワード

簡易認証のパスワードとしてパスワードを使用します。

-W

簡易認証のプロンプトです。コマンドラインにパスワードを指定するかわりに、このオプションが使用されます。

-Z

操作をバインドして実行する前に、TLSを開始します。TLSを開始する操作の途中でエラーが発生すると、エラーは無視され操作は続行されます。エラーが発生した場合に操作を中止するには、このオプションの代わりに-zzオプションの使用をお勧めします。

このオプションでポートが指定されている場合、そのポートはクリアテキスト接続を受信する必要があります。

サーバの識別情報を確認するには、このオプションを-eオプションと組み合わせて使用し、サーバ証明書ファイルを指定する必要があります。TLSを開始すると、これによりサーバのルート認証局証明書が確認されます。-eオプションが指定されていない場合、サーバからのすべての証明書が許可されます。

-ZZ

操作をバインドして実行する前に、TLSを開始します。TLSを開始する操作の途中でエラーが発生すると、操作は中止されます。

このオプションでポートが指定されている場合、そのポートはクリアテキスト接続を受信する必要があります。

サーバの識別情報を確認するには、このオプションを-eオプションと組み合わせて使用し、サーバ証明書ファイルを指定する必要があります。TLSを開始すると、これによりサーバのルート認証局証明書が確認されます。-eオプションが指定されていない場合、サーバからのすべての証明書が許可されます。


/tmp/entrymodsファイルが存在すると仮定すると、次のような内容になります。

dn:cn=Modify Me, o=University of Michigan, c=US
changetype:modify
replace:mail
mail:modme@terminator.rs.itd.umich.edu
-
add:title
title:Manager
-
add:jpegPhoto
jpegPhoto:/tmp/modme.jpeg
-
delete:description
-

この場合、コマンド「ldapmodify -b -r -f /tmp/entrymods」は、コンテンツ「Modify Me entry」のメール属性を「modme@terminator.rs.itd.umich.edu」の値に置き換え、タイトル「Manager」を追加し、/tmp/modme.jpegファイルの内容をjpeg写真として追加し、属性記述を完全に削除します。

このような変更は、以下のようにldapmodifyの古い入力規則を使用して実行することもできます。

cn=Modify Me, o=University of Michigan, c=US
mail=modme@terminator.rs.itd.umich.edu
+title=Manager
+jpegPhoto=/tmp/modme.jpeg
-description
コマンドは次のようになります。
ldapmodify -b -r -f /tmp/entrymods
/tmp/newentryファイルが存在すると仮定すると、次のような内容になります。
dn:cn=Barbara Jensen, o=University of Michigan, c=US
objectClass:person
cn:Barbara Jensen
cn:B Jensen
sn:Jensen
title:Manager
mail:bjensen@terminator.rs.itd.umich.edu
uid:bjensen

この場合、/tmp/newentryファイルからの値を使用して、コマンド「ldapadd -f /tmp/entrymods」は「B Jensen」に新しいエントリを追加します。

/tmp/newentryファイルが存在すると仮定すると、次のような内容になります。

dn:cn=Barbara Jensen, o=University of Michigan, c=US
changetype:delete

この場合、コマンド「ldapmodify -f /tmp/entrymods」は「B Jensen」のエントリを削除します。


ldapdelete

ldapdeleteユーティリティは、指定したインデックスを削除します。LDAPサーバとの接続を開始し、バインドしてから削除します。構文は次のとおりです。

ldapdelete [-n] [-v]  [-c]  [-r] [-l] [-C] [-M] [-d デバッグレベル] [-e キーファイル名] [-f ファイル] [-D バインドDN] [[-W]| [-w パスワード]] [-h LDAPホスト] [-p LDAPポート] [-Z[Z]] [dn]...

注:  NetWareサーバでは、このユーティリティは、ldeleteと呼ばれます。

dnパラメータは、削除するエントリの識別名のリストです。

これは、-fオプションと次のように通信します。

  • コマンドラインに-fオプションがなく、コマンドラインでdnが指定されている場合、ユーティリティにより指定したエントリが削除されます。
  • コマンドラインにdnと-fの両方がある場合、ユーティリティはdnのファイルを読み込んで削除して、コマンドラインのdnは無視します。
  • コマンドラインにdnと-fオプションがない場合、ユーティリティはstdinからdnを読み込みます。

ヒント:  ldapユーティリティからの出力はstdoutに送られます。出力が表示される前にユーティリティが存在する場合、出力はファイルにリダイレクトされます。例: ldapdelete [オプション] > out.txt

オプション 説明

-c

連続操作モード。エラーが通知されても、ldapdeleteは削除動作を継続します。デフォルトでは、エラーが通知されると終了します。

-f ファイル

ファイルから行を読み取り、1行ごとにLDAP検索を実行します。この場合、コマンドラインに指定されたフィルタは、%sが最初に出現した個所がファイルに指定された行で置換されるというパターンとして機能します。

-r

再起的に削除します。

注:  共通オプションについての詳細は、すべてのLDAPツールの共通オプションを参照してください。


ldapdeleteのコマンド「cn=Delete Me, o=University of Michigan, c=US」では、「University of Michigan」組織のエントリの真下にあるcommonName「Delete Me」で指定されたエントリを削除します。この場合、削除が許可されるためにはbinddnおよびpasswdを指定する必要があります(-Dオプションおよび-wオプションを参照)。


ldapmodify

ldapmodifyユーティリティを使用すると、既存エントリの属性を変更したり、新規エントリを追加することができます。構文は次のとおりです。

ldapmodify [-a] [-c] [-C] [-M] [-P] [-r] [-n] [-v] [-F] [-l 制限] [-M[M]] [-d デバッグレベル] [-e キーファイル名] [-D バインドDN] [[-W]|[-w パスワード]] [-h LDAPホスト] [-p LDAPポート] [-P バージョン] [-Z[Z]] [-f ファイル]

注:  NetWareサーバでは、このユーティリティはlmodifyと呼ばれます。

-fオプションを指定すると、ldapmodifyにより変更がファイルから読み出されます。-fオプションを指定しない場合、変更はstdinから読み出されます。

ヒント:  ldapユーティリティからの出力はstdoutに送られます。出力が表示される前にユーティリティが存在する場合、出力はファイルにリダイレクトされます。例:ldapmodify [オプション] > out.txt

オプション 説明

-a

新しいエントリを追加します。ldapmodifyのデフォルトは、既存エントリの変更です。ldapaddとして呼び出されると、このフラグは常にオンになります。

-r

デフォルトでは既存の値を置換します。

-c

連続操作モード。エラーが通知されても、ldapmodifyは変更動作を継続します。デフォルトでは、エラーが通知されると終了します。

-f ファイル

エントリ情報を標準入力ではなくLDIFファイルから読み出します。レコードの最大長は4096行です。

-F

replica:で始まる入力行の内容に関わりなく、すべての変更を無条件で適用します(デフォルトでは、replica:行は使用中のLDAPサーバホストおよびポートと比較され、replogレコードを実際に適用するかどうか決定します)。

注:  共通オプションについての詳細は、すべてのLDAPツールの共通オプションを参照してください。


ldapmodrdn

ldapmodrdnを使用すると、エントリの相対識別名を変更できます。また、エントリを新しいコンテナに移動することもできます。構文は次のとおりです。

ldapmodrdn [-r] [-n] [-v] [-c] [-C] [-l] [-M] [-s 新規スーペリア] [-d デバッグレベル] [-e キーファイル名] [-D バインドDN] [[-W]|[-w  パスワード]]  [-h LDAPホスト] [-p LDAPポート] [-Z[Z]] [-f ファイル] [dn 新規RDN]

注:  NetWareサーバでは、このユーティリティは<newrdn>と呼ばれます)。

ldapユーティリティからの出力はstdoutに送られます。出力が表示される前にユーティリティが存在する場合、出力はファイルにリダイレクトされます。例:ldapmodrdn [オプション] > out.txt

オプション 説明

-c

連続操作モード。エラーが通知されても、ldapmodifyは変更動作を継続します。デフォルトでは、エラーが通知されると終了します。

-f ファイル

エントリ変更情報を標準入力やコマンドラインではなくファイルから読み出します。古いRDNと新しいRDNの間に空白行がないか確認します。空白行がある場合、-fオプションは失敗します。

-r

エントリから旧RDN値を削除します。デフォルトでは、以前の値が保持されます。

-s 新規スーペリア

エントリの移動先のコンテナの識別名を指定します。

注:  共通オプションについての詳細は、すべてのLDAPツールの共通オプションを参照してください。


/tmp/entrymodsファイルが存在すると仮定すると、次のような内容になります。

cn=Modify Me, o=University of Michigan, c=US
cn=The New Me


ldapsearch

ldapsearchユーティリティは、指定された属性とオブジェクトクラスのディレクトリを検索します。構文は次のとおりです。

ldapsearch [-n] [-u] [-v] [-t] [-A] [-T] [-C] [-V] [-M] [-P] [-L] [-d デバッグレベル] [-e キーファイル名] [-f ファイル] [-D バインドDN] [[-W]| [-w バインドパスワード]] [-h LDAPホスト] [-p LDAPポート] [-b 検索基点] [-s スコープ] [-a 逆参照] [-l 時間制限] [-z サイズ制限] [-Z[Z]] filter [属性....]

注:  NetWareサーバでは、このユーティリティはlsearchと呼ばれます。

ldapsearchツールはLDAPサーバとの接続を開始し、バインドを行い、フィルタを使用して検索を実行します。フィルタは、RFC 2254で定義されたLDAPフィルタの文字列表現に準拠している必要があります。

ldapsearchが1つ以上のエントリを検出すると、attrsで指定された属性が取り込まれ、エントリと値が標準出力に書き込まれます。属性がリストされない場合、すべての属性が戻ります。

ヒント:  ldapユーティリティからの出力はstdoutに送られます。出力が表示される前にユーティリティが存在する場合、出力はファイルにリダイレクトされます。例: ldapsearch [オプション] filter [属性リスト] > out.txt.

オプション 説明

-a 逆参照

別名の逆参照の処理方法を指定します。次の値を使用します。

  • Never: ベースオブジェクトの検索時に、別名の逆参照は行われません。
  • Always: ベースオブジェクトの検索時に、別名の逆参照を常に行います。
  • Search: ベースオブジェクトのサブオーディネートの検索時は別名の逆参照を行いますが、ベースオブジェクトの検索時には行いません。
  • Find: ベースオブジェクトの検索時は別名の逆参照を行いますが、ベースオブジェクトのサブオーディネートの検索時には行いません。

-A

値ではなく、属性のみ取り込まれます。エントリに属性が存在するかどうかを確認して、具体的な属性値を知る必要がない場合に便利です。

-CC

次の参照を有効にします。(同じバインドDNとパスワードで認証されたバインド)

-b 検索ベース

検索ベースを検索の開始ポイントとして使用します。

-L

エントリをLDIF形式で出力します。

-LL

エントリをLDIF形式で出力します。コメントは出力されません。

-LLL

エントリをLDIF形式で出力します。コメントおよびバージョンは出力されません。

-s スコープ

検索のスコープを指定します。スコープとして、ベースオブジェクトを示す「base」、1レベルを示す「one」、またはサブツリー検索を示す「sub」を指定します。デフォルトは「sub」です。

-S 属性

戻されたエントリを属性に基づいてソートします。デフォルトでは、戻ったエントリのソートを行いません。属性が長さ0の文字列("")の場合、エントリはその識別名のコンポーネントによりソートされます。詳細については、ldap_sortを参照してください。通常は、ldapsearchはエントリを受け取った順に出力します。-Sオプションを指定するとデフォルトが無効になり、すべてのエントリが取り込まれ、ソートされてから出力されます。

-t

検索されたバイナリ値が一時ファイルに書き込まれます。これは、jpegの写真やオーディオなどASCII以外の値を扱うときに便利です。

-tt

すべての値が一時ファイルに書き込まれます。

-T パス

ファイルをパス(デフォルト: "/tmp")で指定されたディレクトリに書き出します。

-u

識別名(DN)をユーザにわかりやすい形式で出力します。

-V

ファイルのURLプリフィックスです。

-V プリフィックス

ファイルのURLプリフィックスを指定します(デフォルト: "file://tmp/")。

-z サイズ制限

検索が終了するまで最大サイズ制限エントリだけ待機します。

注:  共通オプションについての詳細は、すべてのLDAPツールの共通オプションを参照してください。


次のコマンドを実行します。

ldapsearch "cn=mark smith" cn telephoneNumber

commonName「mark smith」のエントリのサブツリー検索(デフォルトの検索ベースを使用)を実行します。commonNameの値およびtelephoneNumberの値が取得され、標準出力に表示されます。2つのエントリが検出された場合、次のように出力されます。

cn=Mark D Smith, ou="College of Literature, Science, and the Arts", ou=Students, ou=People, o=University of Michigan, c=US
cn=Mark Smith
cn=Mark David Smith
cn=Mark D Smith 1
cn=Mark D Smith
telephoneNumber=+1 313 930-9489
cn=Mark C Smith, ou=Information Technology Division, ou=Faculty and Staff, ou=People,o=University of Michigan, c=US
cn=Mark Smith
cn=Mark C Smith 1
cn=Mark C Smith
telephoneNumber=+1 313 764-2277

コマンド:

ldapsearch -u -t "uid=mcs" jpegPhoto audio

デフォルトの検索ベースを使用して、ユーザID「mcs」のエントリのサブツリー検索を実行します。エントリのDNは、DN自体を含む行の後にわかりやすい形式で出力されます。また、Jpegの写真の値およびオーディオの値が取得され、一時ファイルに書き込まれます。要求された属性がそれぞれ1つの値をもつエントリが1つ検出された場合、次のように出力されます。

cn=Mark C Smith, ou=Information Technology Division, ou=Faculty and Staff, ou=People, o=University of Michigan, c=US
Mark C Smith, Information Technology Division, Faculty and Staff, People, University of Michigan, US
audio=/tmp/ldapsearch-audio-a19924
jpegPhoto=/tmp/ldapsearch-jpegPhoto-a19924

次のコマンドは、organizationNameが「university」で始まるすべての組織のc=USレベルで、1レベルの検索を実行します。

ldapsearch -L -s one -b "c=US" "o=university*" o description

検索結果はLDIF形式で表示されます。organizationNameの値および記述属性の値が取得され、標準出力に書き込まれます。出力結果の例は次のようになります。

dn:o=University of Alaska Fairbanks, c=US
o:University of Alaska Fairbanks
description:Preparing Alaska for a brave new yesterday.
description:leaf node only
dn:o=University of Colorado at Boulder, c=US
o:University of Colorado at Boulder
description:No personnel information
description:Institution of education and research
dn:o=University of Colorado at Denver, c=US
o:University of Colorado at D


ndsindex

ndsindexを使用すると、インデックスの作成、一覧表示、一時停止、再開、削除を実行できます。構文は次のとおりです。

ndsindex list [-h <ホスト名>] [-p <ポート>] -D <バインドDN> -W|[-w <パスワード>] [-l 制限] -s <eDirectoryサーバのDN> [-Z[Z]] [<インデックス名1>, <インデックス名2>.....]
ndsindex add [-h <ホスト名>] [-p <ポート>] -D <バインドDN> -W|[-w <パスワード>] [-l 制限] -s <eDirectoryサーバのDN> [-Z[Z]] <インデックス定義1> [<インデックス定義2>.....]
ndsindex delete [-h <ホスト名>] [-p <ポート>] -D <バインドDN> -W|[-w <パスワード>] [-l 制限] -s <eDirectoryサーバのDN> [-Z[Z]] <インデックス名1> [<インデックス名2>.....]
ndsindex resume [-h <ホスト名>] [-p <ポート>] -D <バインドDN> -W|[-w <パスワード>] [-l 制限] -s <eDirectoryサーバのDN> [-Z[Z]] <インデックス名1> [<インデックス名2>.....]
ndsindex suspend [-h <ホスト名>] [-p <ポート>] -D <バインドDN> -W|[-w <パスワード>] [-l 制限] -s <eDirectoryサーバのDN> [-Z[Z]] <インデックス名1> [<インデックス名2>.....]

注:  NetWareサーバでは、このユーティリティはnindexと呼ばれます。

オプション 説明

list

指定したインデックスを表示します。インデックスが指定されていない場合、ndsindexはサーバ上のすべての既存のインデックスを表示します。

add

新しいインデックスを作成します。

delete

指定したインデックスを削除します。

resume

指定したインデックスをオフラインの状態から再開します。

suspend

指定したインデックスを一時停止してオフラインの状態にします。

-s eDirectoryサーバのDN

eDirectoryサーバのDNを指定します。

注:  共通オプションについての詳細は、すべてのLDAPツールの共通オプションを参照してください。


サーバMyHost上のインデックスを表示するには、次のコマンドを入力します。

ndsindex list -h MyHost -D cn=admin, o=mycompany -w password -s cn=MyHost, o=novell

電子メールの属性にMyIndexという名前の下位文字列インデックスを作成するには、次のコマンドを入力します。

ndsindex add -h myhost -D cn=admin, o=mycompany -w password -s cn=myhost, o=novell "MyIndex;email address;substring"

市町村の属性にMyIndexという名前の値インデックスを作成するには、次のコマンドを入力します。

ndsindex add -h myhost -D cn=admin, o=mycompany -w password -s cn=myhost, o=novell "MyIndex;city;value"

自宅電話番号の属性にMyIndexという名前の存在インデックスを作成するには、次のコマンドを入力します。

ndsindex add -h myhost -D cn=admin, o=mycompany -w password -s cn=myhost, o=novell "MyIndex;homephone;presence"

MyIndexという名前のインデックスを削除するには、次のコマンドを入力します。

ndsindex delete -h myhost -D cn=admin, o=mycompany -w password -s cn=myhost,o=novell MyIndex

MyIndexという名前のインデックスを一時停止するには、次のコマンドを入力します。

ndsindex suspend -h myhost -D cn=admin, o=mycompany -w password -s cn=myhost, o=novell MyIndex

MyIndexという名前のインデックスを再開するには、次のコマンドを入力します。

ndsindex resume -h myhost -D cn=admin, o=mycompany -w password -s cn=myhost, o=novell MyIndex