slapd - スタンドアローン LDAP デーモン
/usr/local/libexec/slapd [-[4|6]] [-T {acl|add|auth|cat|dn|index|passwd|test}] [-d debug-level] [-f slapd-config-file] [-F slapd-config-directory] [-h URLs] [-n service-name] [-s syslog-level] [-l syslog-local-user] [-r directory] [-u user] [-g group] [-c cookie]
slapd はスタンドアローンの LDAP デーモンである。このデーモンは、いくつもの ポート(デフォルトは 389)の LDAP コネクションで LDAP 操作を受け付けて応答する。 slapd は通常、OS のブート時に(普通 /etc/rc.local から)起動される。 通常 slapd を起動すると、フォークを行って起動した tty から自分自身を切り離す。 設定ファイル(または設定ディレクトリ)に設定があれば、 slapd のプロセスは自分のプロセス ID ( getpid (2) を参照)を .pid ファイルに書き出す。同様に設定があれば、起動時のコマンドライン オプションを .args ファイルに書き出す( slapd.conf (5) を参照)。 オプション -d が与えられていれば、そのデバッグ指定が 0 であっても、 slapd はフォークせず、起動した tty と切り離されない。
slapd は、 slurpd (スタンドアローン LDAP 更新複製デーモン)と協力して、 データベースの複製サービスを提供するように設定できる。 詳しくは slurpd (8) を参照。
slapd についてより詳しくは "OpenLDAP 管理者ガイド" を参照。
- -4
- IPv4 アドレスだけを受けつける。
- -6
- IPv6 アドレスだけを受けつける。
- -T {a|c|d|i|p|t|acl|auth}
- ツールモードで起動する。引数は slapadd, slapcat, slapdn, slapindex, slappasswd, slaptest のどのモードで起動するかを指示する("a" は slapadd を表すため、slapacl と slapauth では、オプション値にそれぞれ "acl", "auth" を指定する必要があります)。 このオプションは、コマンドラインの中で一番最初に指定すること。 継続して指定するオプションは該当する slap ツールプログラムによって解釈される。 普通、これらのツールプログラムは slapd にシンボリックリンクされている。 このようなオプションを提供するのは、シンボリックリンクされていない場合、 またはシンボリックリンクが利用できない状況に対処するためである。
- -d debug-level
- デバッグモードを debug-level にする。このオプションを指定すると、そのデバッグ指定が 0 であっても、 slapd はフォークせず、起動した端末から切り離されない。 一般的な操作と状態のメッセージが debug-level の値に応じて出力される。 debug-level はビットストリングとして扱われる。 その各ビットはそれぞれ行ったデバッグ情報に対応している。 詳しくは <ldap_log.h> を参照。 パケットの記録をとるようにしていた場合、 記録されるパケットにはバインド時の パスワードも含まれることに注意。 この記録をログファイルにリダイレクトするなら、 ファイルに読取り制限をかけるべきである。
- -s syslog-level
- このオプションは、 syslog (8) 機能にどのレベルのデバッグ情報を記録するかを slapd に示す。
- -n service-name
- ログ採取などで使われるサービス名を指定する。 デフォルトは argv[0] のベースネーム(basename)、すなわち "slapd" である。
- -l syslog-local-user
- syslog (8) 機能のローカルユーザを指定する。値は LOCAL0 から LOCAL7、 そして USER と DAEMON . のうちのどれかにできる。デフォルトは LOCAL4 である。しかし、このオプションは syslog (8) 機能でローカルユーザをサポートしているシステムでのみ利用できる。
- -f slapd-config-file
- slapd の設定ファイルを指定する。デフォルトは ETCDIR/slapd.conf である。
- -F slapd-config-directory
- slapd の設定ディレクトリを指定する。デフォルトは ETCDIR/slapd.d である。オプション -f と -F の両方を指定した場合、設定ファイルが読み込まれ、設定ディレクトリの フォーマットに変換した後、指定の設定ディレクトリに書き込む。 どちらのオプションも指定しなかった場合、slapd はデフォルトの設定ファイルを利用しようとする前にデフォルトの 設定ディレクトリからの読み込みを試みる。 正しい設定ディレクトリが存在していればデフォルトの設定ファイルは 無視される。設定オプションを指定できるすべての slap ツールでも、これと同じ処理を行う。
- -h URLlist
- slapd はデフォルトで ldap:/// (デフォルトの LDAP ポート 389 ですべてのインタフェースを扱う TCP上の LDAP)にて応対する。つまり INADDR_ANY とポート 389 を使ってバインドする。 オプション -h は応対する LDAP (および他のスキームの) URL を指定するために使われる。 たとえば slapd に -h ldap://127.0.0.1:9009/ ldaps:/// ldapi:/// を与えると、LDAP については 127.0.0.1:9009、 TLS 上の LDAP と IPC (Unix ドメインソケット)上の LDAP については 0.0.0.0:636 で受け付ける。 ホスト 0.0.0.0 は INADDR_ANY (any interface)を表す。 このオプションの引数としては、スペースで区切られた URL のリストが求められる。 URL は LDAP, LDAPS, LDAPI のいずれかのスキームで指定し、 一般に DN やその他のオプションのパラメータを付けない(後述の例外あり)。 また、基盤の受付け機構の利用権を示す実験的な拡張を加えて 指定できる。LDAP over TLS と LDAP over IPC のサポートは構築時に指定したオプションに依存する。 ホストは、ホスト名、IPv4 と IPv6 のアドレスフォーマットのいずれで 指定してもかまわない。ポートを指定する場合は数値で指定しなければならない。 デフォルトの ldap:// のポートは 389 で、デフォルトの ldaps:// のポートは 636 である。
受付け機構の利用権は "x-mod=-rwxrwxrwx", "x-mod=0777", "x-mod=777" のどれかで示す。 ここで "rwx" のところには対応する利用権を与えないために "-" を指定でき、 "7" のところには 8 進数を指定できる。これらの値の規則は chmod(1) にしたがう。 受付け機構ではLDAP操作に大雑把な制限を適用するのに "x-mod" 拡張の利点を活かせる。 たとえば読取り操作の許可("r" は検索と比較に適用)、 書込み操作の許可("w" は追加、削除、更新、名前変更に適用)、 実行操作の許可("x" はバインドが要求されることを意味)ができる。 "user" 利用権は認証ユーザに適用し、"other" 利用権は匿名ユーザに適用する。 "group" 利用権は無視する。 たとえば "ldap:///????x-mod=-rw——-" という指定では、 認証した接続についてだけ読取りと書込みを許可するので、 すべてのLDAP操作についてバインドが必要となる。 この機能は実験的なもので、configure スクリプト実行時に 有効にする指定が必要である。
- -r directory
- ルートディレクトリにするディレクトリを指定する。 slapd は現在の作業ディレクトリを指定のディレクトリに変え、 指定のディレクトリに chroot (2) する。 これは、受付け機構をオープンした後で、設定ファイルの読込みや バックエンドの初期化をする前に行う。 セキュリティ機構として使う場合にはオプション -u と -g を合わせて使うべきである。
- -u user
- 指定したユーザ名あるいはユーザ ID で slapd を起動する。 この際、指定したユーザにより initgroups(3) で設定される 補足グループアクセスリストが使われる。 グループ ID は -g オプションで上書きしない限りユーザの GID に変更される。 -r と一緒に指定する場合、slapd は変更するルート環境でのユーザデータベースを使う。
非特権ユーザで起動すると passwd バックエンドが暗号化されたパスワードに アクセスできなくなるシステムがあることに注意。 またシェルバックエンドが指定した非特権ユーザで起動することにも注意。
- -g group
- slapd を指定のグループ名またはグループIDで起動する。 オプション -r と一緒に指定する場合、slapd は変更するルート環境でのグループデータベースを使う。
- -c cookie
- このオプションは syncrepl 複製コンシューマのための cookie を与える。 引数 cookie には name=value のペアをカンマで区切ったリストを指定する。 現在のところサポートしている syncrepl cookie フィールドには rid と csn がある。 rid はコンシューマサーバの複製スレッドの ID です。 これは、 slapd.conf (5) 内の syncrepl 指定から同じ ID を持った定義を見つけるために使われる。 rid には 既存に設定の済んでいる値を指定しなければならない。 csn は前の同期化処理で受け取ったコミット連番(commit sequence number)であり、 syncrepl エンジンが現在のプロバイダの内容に同期化する コンシューマレプリカ内容の状態を表す。
slapd を起動し、フォークして端末から切り離し、デフォルトの設定ファイルに 定義した LDAP データベースのサービスを開始するには 次のようにするだけである。
/usr/local/libexec/slapd
代替の設定ファイルで slapd を起動し、大量のデバッグ情報を標準エラーに出力するには次のようにする。
/usr/local/libexec/slapd -f /var/tmp/slapd.conf -d 255
設定ファイルが適正であるかをテストするには次のようにする。
/usr/local/libexec/slapd -Tt
ldap (3), slapd.conf (5), slapd.access (5), slapacl (8), slapadd (8), slapauth (8), slapcat (8), slapdn (8), slapindex (8), slappasswd (8), slaptest (8), slurpd (8)
"OpenLDAP 管理者ガイド" (http://www.OpenLDAP.org/doc/admin/)