コンテンツにスキップ

ldapmodify

ldapmodify は LDIF に書いた変更内容を、LDAP プロトコル経由で既存エントリへ適用するコマンド。


Terminal window
ldapmodify \
-x \
-D "cn=admin,dc=example,dc=com" \
-W \
-H ldap://ldap.example.com/ \
-ZZ \
-f change.ldif

この例では、 change.ldif に書いた変更を LDAP サーバーへ適用する。


ldapmodify では、 changetype: modify と変更操作を書く。

change.ldif
dn: uid=ldapuser,ou=people,dc=example,dc=com
changetype: modify
replace: loginShell
loginShell: /bin/zsh

複数の変更操作を書く場合は、 - で区切る。

dn: uid=ldapuser,ou=people,dc=example,dc=com
changetype: modify
replace: loginShell
loginShell: /bin/zsh
-
add: description
description: test user

操作 意味
add 属性値を追加する
replace 属性値を置き換える
delete 属性または属性値を削除する

replace は既存値をまとめて置き換える。複数値属性の一部だけを消したい場合は delete に対象値を書く。


cn=config を変更する場合も ldapmodify を使う。

Debian 系では、ローカル root から ldapi:/// と SASL EXTERNAL を使う構成が多い。

Terminal window
sudo ldapmodify \
-Y EXTERNAL \
-H ldapi:/// \
-f config-change.ldif

これは ldapi と cn=config に対する変更であり、通常のユーザーエントリを変更する操作とは接続先と認証方式が違う。


オプション 意味
-f file 読み込む LDIF ファイル
-x Simple Bind を使う
-D DN Bind DN を指定する
-W Bind パスワードを対話入力する
-H URI LDAP サーバーの URI を指定する
-ZZ StartTLS を必須にする
-Y EXTERNAL SASL EXTERNAL を使う
-c エラーがあっても処理を続ける
-n 実際には変更せず、何をするか表示する


  • ldapmodify(1) LDAP エントリの追加・変更・削除・リネーム操作。