ldapmodify
ldapmodifyは LDIF に書いた変更内容を、LDAP プロトコル経由で既存エントリへ適用するコマンド。
ldapmodify \ -x \ -D "cn=admin,dc=example,dc=com" \ -W \ -H ldap://ldap.example.com/ \ -ZZ \ -f change.ldifこの例では、 change.ldif に書いた変更を LDAP サーバーへ適用する。
変更用LDIF
Section titled “変更用LDIF”ldapmodify では、 changetype: modify と変更操作を書く。
dn: uid=ldapuser,ou=people,dc=example,dc=comchangetype: modifyreplace: loginShellloginShell: /bin/zsh複数の変更操作を書く場合は、 - で区切る。
dn: uid=ldapuser,ou=people,dc=example,dc=comchangetype: modifyreplace: loginShellloginShell: /bin/zsh-add: descriptiondescription: test user| 操作 | 意味 |
|---|---|
add |
属性値を追加する |
replace |
属性値を置き換える |
delete |
属性または属性値を削除する |
replace は既存値をまとめて置き換える。複数値属性の一部だけを消したい場合は delete に対象値を書く。
cn=configを変更する
Section titled “cn=configを変更する”cn=config を変更する場合も ldapmodify を使う。
Debian 系では、ローカル root から ldapi:/// と SASL EXTERNAL を使う構成が多い。
sudo ldapmodify \ -Y EXTERNAL \ -H ldapi:/// \ -f config-change.ldifこれは ldapi と cn=config に対する変更であり、通常のユーザーエントリを変更する操作とは接続先と認証方式が違う。
よく使うオプション
Section titled “よく使うオプション”| オプション | 意味 |
|---|---|
-f file |
読み込む LDIF ファイル |
-x |
Simple Bind を使う |
-D DN |
Bind DN を指定する |
-W |
Bind パスワードを対話入力する |
-H URI |
LDAP サーバーの URI を指定する |
-ZZ |
StartTLS を必須にする |
-Y EXTERNAL |
SASL EXTERNAL を使う |
-c |
エラーがあっても処理を続ける |
-n |
実際には変更せず、何をするか表示する |
Debian manpages
Section titled “Debian manpages”- ldapmodify(1) LDAP エントリの追加・変更・削除・リネーム操作。