web-dev-qa-db-ja.com

ldapadd / ldapmodify:これらのコマンドについて必要な説明

ldapmodifyのマニュアルページには、次のように記載されています。

Ldapmodifyのデフォルトでは、既存のエントリを変更します

しかし、ldapmodifyを使用してLDIFファイルをインポートしようとすると、次のエラーが発生します。

ldapmodify: modify operation type is missing at line X

Q1:なぜ、ldapmodifyコマンドにどの引数を追加する必要があるのですか?

ldapaddを使用してLDIFファイルをインポートし、エントリがすでに存在する場合、次のエラーが発生します。

ldap_add: Already exists (68)

これは-cスイッチ(続行)を使用して無視できますが、ldap_addは既存のエントリを更新しません。代わりに、既存のエントリを更新するにはldapmodifyを使用する必要がありますが、ldapmodifyは欠落しているエントリを追加しません。

Q2:不足しているエントリを作成し、既存のエントリを同時に更新することでLDIFファイルをインポートする方法はありますか?

7
Max

Ldapmodifyのldifの構文は、通常のldifとは異なります。例:値「bar」の「foo」エントリを追加する場合は、次のようにldifを記述する必要があります。

dn: cn=ToModify,dc=example,dc=com
changetype: Modify
add: foo
foo: bar

replace: mail
mail: [email protected]

delete: unneededEntry

このldifは、値barの属性fooを追加し、メール属性を[email protected]に更新して、不要なエントリを削除します。次に、ldapmodifyコマンドを呼び出します。

ldapmodify -f update.ldif 

(たとえば、単純な認証などの他のオプションで必要な場合)

11
Goez

Goezの回答は問題ないようです。

ただし、ldifに慣れていない場合は、使用しても意味があります。

ldapvi

代わりに。既存のエントリを編集するか、新しいエントリを追加できます。

apt-get install ldapvi
1
cstamas

-aスイッチを試してください

Add or modify options:
  -a         add values (default is to replace)
1
tok