無茶振りされたので調査中です。
構築手順については以下の記事が大変参考になります。
確認系
root で実行します。
設定関連
# 1. 全設定
# とりあえずこれで全部の設定が確認できるはず
ldapsearch -LLL -Y EXTERNAL -H ldapi:// -b "cn=config"
# 2. DB設定だけ確認する
# mdb ではない場合があるらしく、その場合は 1. で全量出力して確認すると良い
# ディレクトリ管理者 RootDN、Suffix、アクセス権限などの設定が確認できる
ldapsearch -LLL -Y EXTERNAL -H ldapi:// -b "olcDatabase={2}mdb,cn=config"
# 3. スキーマ定義の確認
# エントリを追加する際に気になることがあるので、確認できるようにしておくと良い
# cn=config を見るときに大量に流れていくやつ
# ldif-wrap=no しておくと grep できるので良い
ldapsearch -LLL -Y EXTERNAL -H ldapi:// -b "cn=schema,cn=config" -o ldif-wrap=no
ディレクトリエントリ関連
# ディレクトリのエントリ全体を出力
ldapsearch -LLL -Y EXTERNAL -H ldapi:// -b "dc=example,dc=com"
# uid=test のエントリを検索
ldapsearch -LLL -Y EXTERNAL -H ldapi:// -b "dc=example,dc=com" "uid=test"
更新系
# 追加
ldapadd -Y EXTERNAL -H ldapi:// -f hoge.ldif
# 削除
# 子エントリがある場合は先に子エントリを削除する必要がある
ldapdelete -Y EXTERNAL -H ldapi:// "uid=test,ou=Users,dc=example,dc=com"
# 更新
# 基本的に ldapdelete と ldapadd を使うと良い。
# ldapmodify は構築時などdeleteするわけには行かない場合に使用するもの。
# 例えば、以下のような流れだとオペレーションが安定する(気がする)
# 更新対象エントリの出力
ldapsearch -LLL -Y EXTERNAL -H ldapi:// -b "dc=example,dc=com" "uid=test" > entry.ldif
# エントリの修正(必要に応じてバックアップを作っておく)
vi entry.ldif
# 削除
ldapdelete -Y EXTERNAL -H ldapi:// "uid=test,ou=Users,dc=example,dc=com"
# 追加
ldapadd -Y EXTERNAL -H ldapi:// -f hoge.ldif
外部からアクセスする場合
外部からアクセスする場合は -H
に接続先情報と、-D
でアクセスユーザー、-W
はパスワードを対話入力するオプションです。
ldapsearch -LLL -Y EXTERNAL -H ldap://123.123.123.123:389 -W -D "cn=Manager,dc=example,dc=com" -b "dc=example,dc=com"