コンテンツにスキップ

LDAP操作と保守コマンド

OpenLDAP のコマンドは、起動中の slapd へ LDAP プロトコルで接続する通常操作コマンドと、バックエンドを直接扱う保守コマンドに分けて考える。


種類 経路 主な用途
LDAP クライアントコマンド client -> slapd -> database 日常的な検索、追加、変更、削除、認証確認
保守コマンド tool -> database バックアップ、復旧、大量投入、インデックス再構築

日常的な操作では、基本的に LDAP クライアントコマンドを使う。これらは起動中の slapd に接続するため、ACL、スキーマ検証、overlay、レプリケーションなどの対象になる。

保守コマンドは LDAP プロトコルを通らず、バックエンドを直接扱う。便利だが、通常運用の追加・変更コマンドとして使うものではない。


ldapsearch / ldapadd / ldapmodify / ldapdelete / ldapwhoami / ldappasswd
-> LDAP protocol
-> slapd
-> ACL check
-> schema check
-> backend database
目的 コマンド
エントリを検索する ldapsearch
エントリを追加する ldapadd
エントリを変更する ldapmodify
エントリを削除する ldapdelete
Bind 結果を確認する ldapwhoami
LDAP ユーザーのパスワードを変更する ldappasswd

ldapsearch が成功しても、Linux がユーザーとして認識できるとは限らない。LDAP 直接の確認と、NSS / PAM 経由の確認は分けて見る。詳しくは NSSとPAMによるLinuxログイン を参照する。


slappasswd は LDAP サーバーへ接続せず、 userPassword に入れるパスワードハッシュを生成する。

目的 コマンド
userPassword 用のハッシュを作る slappasswd

既存ユーザーのパスワードを LDAP 経由で変更する場合は slappasswd ではなく ldappasswd を使う。


slapcat / slapadd / slapindex
-> backend database
目的 コマンド
LDIF バックアップを取る slapcat
LDIF から復旧・大量投入する slapadd
インデックスを再構築する slapindex

slapadd や slapindex はバックエンドを直接変更するため、通常は対象データベースの slapd を停止してから実行する。


状況 使うもの
LDAP にユーザーを追加したい ldapadd
既存ユーザーの属性を変えたい ldapmodify
cn=config を変更したい ldapmodify + ldapi:/// + -Y EXTERNAL
LDAP にエントリがあるか確認したい ldapsearch
Linux がユーザーとして見つけるか確認したい getent passwd、 id
LDAP ユーザーとして Bind できるか確認したい ldapwhoami
LDIF バックアップを取りたい slapcat
バックアップ LDIF から復旧したい slapadd
index 設定変更後に再構築したい slapindex