コンテンツにスキップ

slapadd

slapadd は LDIF を OpenLDAP のデータベースへ直接投入する保守コマンド。


slapadd でバックアップを復元する前に、対象データベースを空にする。次の例は、Debian 系で通常データベースが /var/lib/ldap にある場合の手順である。

Terminal window
sudo systemctl stop slapd
sudo mv \
/var/lib/ldap \
/var/lib/ldap.before-restore
sudo install -d \
-o openldap \
-g openldap \
-m 700 \
/var/lib/ldap
sudo slapadd \
-n 1 \
-l backup.ldif
sudo chown -R openldap:openldap /var/lib/ldap
sudo systemctl start slapd

slapadd は slapd を通さずデータベースへ直接書き込む。復旧、大量初期投入、移行などで使う。


コマンド 経路 主な用途
ldapadd LDAP プロトコル経由で slapd に追加させる 通常運用の追加
slapadd データベースへ直接投入する 復旧、大量投入、移行

日常的なユーザー追加には ldapadd を使う。 slapadd は通常運用の追加コマンドではない。


slapadd は対象データベースを直接変更するため、通常は slapd を停止してから実行する。

投入後、データベースファイルの所有者が root になっていると slapd が読めないことがある。Debian 系では、必要に応じて /var/lib/ldap の所有者を openldap:openldap に戻す。

起動後、データが復元されていることを確認する。

Terminal window
sudo slapcat -b "dc=example,dc=com"
sudo systemctl status slapd --no-pager

復元に失敗した場合は、新しく作ったデータベースを別名へ退避し、 /var/lib/ldap.before-restore を元のパスへ戻せる。退避ディレクトリを上書きしないよう、実際の作業では日時を含む名前にすると安全である。


オプション 意味
-n N データベース番号を指定する
-b DN suffix DN でデータベースを指定する
-l file 読み込む LDIF ファイルを指定する
-F path slapd.d 設定ディレクトリを指定する
-c エラーがあっても処理を続ける


  • slapadd(8) LDIF を OpenLDAP データベースへ直接投入する保守コマンド。