第1章 コマンドラインを使用したディレクトリーエントリーの管理

コマンドラインを使用して、LDAP エントリーを追加、編集、名前変更、および削除できます。

1.1. ldapadd、ldapmodify、および ldapdelete ユーティリティーへの入力の指定

ディレクトリーのエントリーまたは属性を追加、更新、または削除する場合は、ユーティリティーのインタラクティブモードを使用して LDAP Data Interchange Format (LDIF) ステートメントに入るか、LDIF ファイルを渡すことができます。

1.1.1. OpenLDAP クライアントユーティリティーのインタラクティブモード

インタラクティブモードでは、ldapaddldapmodify、および ldapdelete ユーティリティーはコマンドラインから入力を読み取ります。インタラクティブモードを終了するには、Ctrl+D (^D) のキーの組み合わせを押して end-of-file (EOF) エスケープシーケンスを送信します。

インタラクティブモードでは、ユーティリティーは、Enter を 2 回押したときに、または EOF シーケンスを送信するときに、ステートメントを LDAP サーバーに送信します。

対話型モードを使用します。

  • ファイルを作成せずに LDAP Data Interchange Format (LDIF) ステートメントに入るには、以下を行います。

    例1.1 ldapmodify インタラクティブモードを使用した LDIF ステートメントの開始

    以下の例では、ldapmodify を対話モードで実行し、telephoneNumber 属性を削除して、cn=manager_name,ou=people,dc=example,dc=com の値の manager 属性を uid=user,ou=people,dc=example,dc=com エントリーに追加します。最後のステートメントの後に Ctrl+D を押して、インタラクティブモードを終了します。

    # ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x
    
    dn: uid=user,ou=people,dc=example,dc=com
    changetype: modify
    delete: telephoneNumber
    -
    add: manager
    manager: cn=manager_name,ou=people,dc=example,dc=com
    
    modifying entry "uid=user,ou=people,dc=example,dc=com"
    
    ^D
  • 別のコマンドによって出力される LDIF ステートメントをサーバーにリダイレクトするには、次のコマンドを実行します。

    例1.2 リダイレクトされたコンテンツでの ldapmodify インタラクティブモードの使用

    以下の例では、command_that_outputs_LDIF コマンドの出力を ldapmodify にリダイレクトします。対話モードは、リダイレクトされたコマンドの終了後に自動的に終了します。

    # command_that_outputs_LDIF | ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x

関連情報

  • ldif(5) の man ページ

1.1.2. OpenLDAP クライアントユーティリティーのファイルモード

インタラクティブモードでは、ldapaddldapmodify、および ldapdelete ユーティリティーは、ファイルから LDAP Data Interchange Format (LDIF) ステートメントを読み取ります。このモードを使用して、より多くの LDIF ステートメントをサーバーに送信します。

例1.3 LDIF ステートメントを持つファイルを ldapmodify に渡す

  1. LDIF ステートメントでファイルを作成します。たとえば、以下のステートメントで ~/example.ldif ファイルを作成します。

    dn: uid=user,ou=people,dc=example,dc=com
    changetype: modify
    delete: telephoneNumber
    -
    add: manager
    manager: cn=manager_name,ou=people,dc=example,dc=com

    この例では、telephoneNumber 属性を削除し、cn=manager_name,ou=people,dc=example,dc=com 値を持つ manager 属性を uid=user,ou=people,dc=example,dc=com エントリーに追加します。

  2. -f パラメーターを使用して、ファイルを ldapmodify コマンドに渡します。

    # ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x -f ~/example.ldif

関連情報

  • ldif(5) の man ページ

1.1.3. OpenLDAP クライアントユーティリティーの連続動作モード

デフォルトでは、複数の LDAP Data Interchange Format (LDIF) ステートメントをサーバーに送信し、1 つの操作が失敗すると、プロセスが停止します。ただし、エラーが発生する前に処理されるエントリーは、正常に追加、変更、または削除されています。

エラーを無視してバッチでさらに LDIF ステートメントの処理を続けるには、-c パラメーターを ldapadd および ldapmodify に渡します。

# ldpamodify -c -D "cn=Directory Manager" -W -H ldap://server.example.com -x