LDAP操作に関するメモ。
-
データ抽出
ldapsearch -h IPアドレス -p ポート番号 -1 -B -F ": " -D cn=XXXXX -w パスワード -z 0 -b o=YYYYY, c=ZZ "(&(objectClass=テーブル名)(属性名=値))" >> result.ldif
オプション補足。
-h:IPアドレスを指定 -p:ポート番号を指定 -1:なんだっけこれ -B:BASE64をデコード -F:属性名と値との間に指定文字列を出力 -D:バインドするdnを指定 -w:パスワードを指定 -z:検索のサイズ言語を指定(0で制限なし?) -b:基本識別名を指定
-
dnごと削除
dn: 属性名=値, ou=AAAAA, o=YYYYY, c=ZZ changetype: delete
-
dnの属性を削除
dn: 属性名=値, ou=AAAAA, o=YYYYY, c=ZZ changetype: modify delete:属性名
-
dnの属性の値を削除
dn: 属性名=値, ou=AAAAA, o=YYYYY, c=ZZ changetype: modify delete:属性名 属性名:値
属性がマルチバリューの場合、特定の値のみを削除できる。
-
dnに属性を追加
dn: 属性名=値, ou=AAAAA, o=YYYYY, c=ZZ changetype: modify add:属性名 属性名:値
-
属性の値を書き換え
dn: 属性名=値, ou=AAAAA, o=YYYYY, c=ZZ changetype: modify replace:属性名 属性名:値
replaceする属性がない場合、addと同じ動作になる。
-
dnを追加
dn: 属性名=値, ou=AAAAA, o=YYYYY, c=ZZ changetype: add objectClass: テーブル名 objectClass: top 属性名1:値1 属性名2:値2 ・・・略
changetypeがmodifyではなく、addになっている。