レンタルサーバ + Webシステム開発 = E-business

■レンタルサーバご利用参考資料
サーバご利用の参考にJF Project によるJF (Japanese FAQ)を掲載しています。

Linux JF(Japanese FAQ)Project.
JF は, Linux に関する解説文書・FAQ などを作成・収集・配布するプロジェクトです.

グリーンネット・トップページへ戻る


一覧に戻る
  LDAP Linux HOWTO
  Luiz Ernesto Pinheiro Malere, malere@yahoo.com
  v1.03, 28 September 2000
  和訳:稲地 稔 
  v1.03j, 21 December 2000

  この文書は、Linux マシンにおける LDAP (Lightweight Directory Access
  Protocol)サーバのインストール、設定、実行、管理に関する情報を載せてい
  ます。また、LDAP データベースの作成方法、データベース中の情報の更新と
  削除、ローミングアクセスを実現する方法、Netscape のアドレス帳の利用方
  法についての詳細も載せています。この文書の大部分は、ミシガン大学の
  LDAP 情報ページと OpenLDAP Administrator's Guide を基にしました。
  ______________________________________________________________________

  目次

  1. はじめに
     1.1 LDAP とは?
     1.2 ディレクトリサービスとは?
     1.3 LDAP はどのように動作するのか?
     1.4 LDAP のバックエンド、オブジェクト、属性
     1.5 この文書の新しいバージョン
     1.6 意見と提案
     1.7 リリース履歴
     1.8 謝辞
     1.9 著作権と免責

  2. LDAP サーバのインストール
     2.1 事前に必要なもの
     2.2 パッケージのダウンロード
     2.3 サーバの展開
     2.4 ソフトウェアの設定
     2.5 サーバの作成

  3. LDAP サーバの設定
     3.1 設定ファイルのフォーマット
     3.2 グローバルディレクティブ
     3.3 一般バックエンドディレクティブ
     3.4 一般データベースディレクティブ
     3.5 LDBM バックエンド固有ディレクティブ
     3.6 他のバックエンドデータベース
     3.7 アクセス制御の例
     3.8 設定ファイルの例

  4. LDAP サーバの実行
     4.1 コマンドラインオプション
     4.2 LDAP サーバの起動
     4.3 LDAP サーバの終了

  5. データベース作成/管理ツール
     5.1 オンラインでデータベースを作成する方法
     5.2 オフラインでデータベースを作成する方法
     5.3 LDIF フォーマットについてさらに
     5.4 ldapsearch, ldapdelete, ldapmodify ユーティリティ

  6. 追加情報と補足
     6.1 ローミングアクセス
        6.1.1 属性ファイルの変更
        6.1.2 オブジェクトクラスファイルの変更
        6.1.3 LDIF ファイルの作成
        6.1.4 Netscape Navigator の設定
        6.1.5 LDAP サーバの再起動
     6.2 Netscape のアドレス帳
     6.3 LDAP Migration Tools
     6.4 LDAP を用いた認証
     6.5 グラフィカルな LDAP ツール
     6.6 Logs

  7. 情報源
     7.1 URLs
     7.2 書籍
     7.3 RFC

  ______________________________________________________________________

  1.  はじめに

  この文書の主な目的は、Linux マシン上に LDAP ディレクトリサーバをセット
  アップして利用することです。読者は、LDAP サーバをインストール、設定、
  実行、管理する方法について学びます。その後、LDAP クライアントとユー
  ティリティを用いてディレクトリ中の情報を格納、取得、更新する方法につい
  ても学びます。LDAP ディレクトリサーバのデーモンは slapd とよばれ、様々
  な UNIX プラットフォームで動作します。

  LDAP サーバ間の複製をつかさどる別のデーモンがあります。このデーモンは
  slurpd とよばれていますが、さしあたりこれについて気にする必要はありま
  せん。この文書では、あなたのローカルドメインにディレクトリサービスを提
  供する slapd を実行します。複製はしないので slurpd は使いません。

  この文書で説明するのは、初心者にとってちょうどよい程度の簡単なサーバの
  環境構築ですが、望むなら後で別の設定にアップグレードすることも簡単で
  す。この文書に載せている情報は、LDAP プロトコルを利用するよい足がかり
  となります。おそらくこの文書を読んだ後には、サーバの能力を拡張したり、
  さらには C, C++, Java 開発キットなどを使ってクライアントを書きたくなっ
  たりすることでしょう。

  1.1.  LDAP とは?

  LDAP とは、ディレクトリサービスにアクセスするためのクライアントサーバ
  プロトコルです。これは当初 X.500 のフロントエンドとして使われていまし
  たが、スタンドアローンのディレクトリサーバや他の種類のディレクトリサー
  バでも使えるようになりました。

  1.2.  ディレクトリサービスとは?

  ディレクトリはデータベースに似ていますが、より記述的で属性ベースの情報
  を含むようになっています。一般にディレクトリ中の情報は、書込みよりも読
  出しの方がずっと多く行われます。したがって、一般的なデータベースで大量
  の複雑な更新を行うために用いられる複雑なトランザクションやロールバック
  機構をディレクトリでは通常実装しません。ディレクトリの更新は、普通は
  all-or-nothing の単純な書き換えに過ぎません。

  ディレクトリは、大量の照会あるいは検索操作に即応できるように最適化され
  ています。稼働率と信頼性を向上、かつレスポンスタイムを減らすために、
  ディレクトリには情報を広く複製する能力があります。ディレクトリ情報が複
  製されている場合、一時的な不整合が発生するかもしれませんが、定期的に同
  期をとるようにしておけば問題ありません。

  ディレクトリサービスの提供方法には色々な種類があります。このため、ディ
  レクトリに保存する情報の種類が多様になり、一方では情報の参照、問合せ、
  更新や、認証されないアクセスからどのように情報を守るかなどに関して色々
  な要求が生じます。局所的で、限られた対象(たとえば、単一のマシンの
  finger サービスなど)のみへのサービスを提供するようなディレクトリサービ
  スがある一方、大域的で、はるかに広い対象にサービスを提供するようなサー
  ビスもあります。

  1.3.  LDAP はどのように動作するのか?

  LDAP ディレクトリサービスは、クライアントサーバモデルを基にしていま
  す。一つ以上のディレクトリサーバが、LDAP ディレクトリツリーあるいは
  LDAP バックエンドデータベースを構成するデータを保有しています。 LDAP
  クライアントは LDAP サーバに接続し、そのサーバに対して質問します。この
  質問に対してサーバは回答を返すか、クライアントがさらに情報を探し出せる
  場所へのポインタ(通常は別のLDAPサーバ)を返します。クライアントからは、
  どの LDAP サーバに接続してもディレクトリは同じように見えます。ある
  LDAP サーバに提示した名前は別の LDAP サーバでも同じエントリを参照しま
  す。これは、LDAP のような大域的ディレクトリサービスの重要な特性です。

  1.4.  LDAP のバックエンド、オブジェクト、属性

  slapd には種類の異なる三つのバックエンドデータベースが付属していて、ど
  れを選ぶかはユーザの自由です。LDBM はディスクベースの高速なデータベー
  スです。SHELL は UNIX コマンドあるいはスクリプトに対するデータベースイ
  ンタフェースです。PASSWD は簡単なパスワードファイルデータベースです。

  この文書では LDBM データベースを選択するものとします。

  LDBM データベースは、データベース中の各エントリに4バイトのコンパクト
  で一意な識別子を割り当てることによって成り立っています。この識別子は索
  引中のエントリを参照するために使われます。データベースには、id2entry
  という一つの主索引ファイルが含まれます。これは、エントリの一意な識別
  子(EID)をエントリ自体のテキスト表現にマップします。その他の索引ファイ
  ルも同様に管理されます。

  LDAP ベースのディレクトリサーバ間でディレクトリ情報をインポートおよび
  エクスポートしたり、ディレクトリに適用される1セットの変更を記述するに
  は、普通 LDIF (LDAP Data Interchange Format)というフォーマットが使われ
  ます。 LDIF は、エントリのオブジェクト指向の階層で情報を格納します。こ
  れから利用する LDAP ソフトウェアパッケージには、 LDIF ファイルを LDBM
  フォーマットに変換するユーティリティが付属しています。

  一般の LDIF ファイルは次のような内容になっています。

       dn: o=TUDelft, c=NL
       o: TUDelft
       objectclass: organization

       dn: cn=Luiz Malere, o=TUDelft, c=NL
       cn: Luiz Malere
       sn: Malere
       mail: malere@yahoo.com
       objectclass: person

  上に示したとおり、各エントリは識別名(distinguished name: DN)で一意に識
  別されます。DN は、エントリの名前とエントリをディレクトリ階層の最上位
  にさかのぼった名前のパスとからなります。

  LDAP では、オブジェクトクラスはエントリを定義するために使える属性の集
  まりを定義します。LDAP の標準では、次のようなオブジェクトクラスの基本
  型を提供しています。

  o  ディレクトリ中のグループ -- これには、個々のオブジェクトの順序なし
     リストあるいはオブジェクトのグループが含まれます。

  o  所在 -- 国名や記述など。

  o  ディレクトリ中の組織。

  o  ディレクトリ中の人々。

  エントリは二つ以上のオブジェクトクラスに所属できます。たとえば、人のた
  めのエントリは、オブジェクトクラス person で定義しますが、オブジェクト
  クラス inetOrgPerson, groupOfNames, organization の属性によっても定義
  できます。サーバのオブジェクトクラス構造(そのスキーマ)は、特定のエント
  リに要求された属性と許されている属性のリスト全体を決定します。

  [訳注] ここでは「所属(belong)」という言葉があいまいに使われていま
  す。inetOrgPerson は person から派生しているので、 inetOrgPerson のエ
  ントリは両方のオブジェクトクラスのエントリと言えます。また、構造型のオ
  ブジェクトクラスと補助型のオブジェクトクラスを組み合わせたエントリを
  作った場合も複数のオブジェクトクラスに「所属」していると言えるでしょ
  う。しかし、groupOfNames と organization は人を定義するものではなく、
  人を表現するエントリを DN で参照できるだけです。
  ディレクトリのデータは、属性と値のペアとして表現されます。情報のいかな
  る部分も記述的な属性と関連付けられています。

  たとえば、属性 commonName (cn)は、人の名前を格納するために使います。名
  前が Jonas Salk である人は、ディレクトリでは次のように表せます。

       cn: Jonas Salk

  ディレクトリに格納する各人は、オブジェクトクラス person 中の属性の集ま
  りによって定義されます。このエントリを定義するために使われる他の属性に
  は次のようなものがあります。

       givenname: Jonas
       surname: Salk
       mail: jonass@airius.com

  必要属性(required attribute)とは、オブジェクトクラスを使うエントリに与
  えなければならない属性のことです。すべてのエントリは objectClass 属性
  を必要とします。これはそのエントリが所属するオブジェクトクラスのリスト
  を指定するものです。

  許可属性(allowed attribute)とは、オブジェクトクラスを使うエントリに与
  えることのできる属性のことです。たとえば、オブジェクトクラス person に
  おいて、属性 cn と sn は必要属性であり、属性 description,
  telephoneNumber, seeAlso, userpassword は許可属性であって必要属性では
  ありません。

  各属性は、対応するシンタックス定義を持っています。このシンタックス定義
  は、属性によって提供される情報のタイプを記述します。

     bin
        バイナリ

     ces
        英大小文字を区別する文字列(比較の際に英大小文字の違いを無視しな
        い)

     cis
        英大小文字を区別しない文字列(比較の際に英大小文字の違いは無視す
        る)

     tel
        電話番号の文字列(cis に似ているが、比較の際にブランクとダッシュ
        `-' を無視する)

     dn 識別名

  オブジェクトクラスと属性の定義がシステムのどこにあるかを知るには、
  ``LDAP サーバの設定''の最初の段落を参照してください。

  1.5.  この文書の新しいバージョン

  この文書は、読者より受け取ったフィードバックをベースにして修正と更新を
  行っています。この HOWTO の新しいバージョンは次のところで見れます。

  http://www.mobilesoft.com.br/HOWTO/LDAP-HOWTO.html

  1.6.  意見と提案

  この文書にある情報について何らかの疑問があれば、email で私に連絡してく
  ださい。(malere@yahoo.com)

  コメントや提案がある場合も私に知らせてください。

  1.7.  リリース履歴

  この節には、この文書のリリース一覧を日付順に載せています。各リリースに
  ついては、前バージョンからの変更点、新規追加項目、修正点を記していま
  す。

  v1.0: 20 June 1999, 初期バージョン

  v1.01: 15 February 2000, 次の節を追加

  o  LDAP Migration Tools

  o  LDAP を用いた認証

  o  グラフィカルな LDAP ツール

  o  RFC

  v1.02: 13 September 2000, 誤字の修正および次の節の追加

  o  リリース履歴

  v1.03: 28 September 2000, OpenLDAP 2.0 の説明の追加。これは Ldap v3
  (RFC2251 ) を取り込んでいま
  す。

  [訳注] 短期間で OpenLDAP 2.0 の情報を取り込んでくれたのはよいのです
  が、そのせいか OpenLDAP 1.2,x の情報と 2.0.x の情報が混乱しています。
  訳者の気づいたところは訳注で示しておきます。

  1.8.  謝辞

  この HOWTO 文書は、オランダの TUDelft 大学で私が勉強がてら作成したもの
  の成果です。この文書を書くように強く勧めてくれた人々、 Rene van Leuken
  と Wim Tiwon に感謝したい。本当にありがとう。彼らも私と同じ Linux ファ
  ンです。

  それから、私の文書に貢献してくれたドイツ語版 LDAP-HOWTO の翻訳者である
  Thomas Bendler と、LDP プロジェクトの偉大なるボランティアである Joshua
  Go にも感謝したい。

  1.9.  著作権と免責

  この LDAP Linux HOWTO の著作権は、1999 年以降 Luiz Ernesto Pinheiro
  Malere にあります。この文書は自由に配布できます。この文書を変更しては
  なりません。何らかの提案がある場合には email で私に連絡してください (
  その提案が有効なら、私が文書を変更します)。

  ポルトガル語などに翻訳したい場合も email で私に連絡してください。

  この文書の内容については一切の責任を負いません。この文書にある手順に
  従った結果について、私は一切の責任を持ちません。
  この件について疑問点があるならば、Linux HOWTO 管理者に連絡してください
  (linux-howto@metalab.unc.edu)。

  2.  LDAP サーバのインストール

  LDAP サーバをインストールするには、事前に必要なパッケージのインストー
  ル (既にインストールされていない場合)、LDAP サーバソフトウェアのダウン
  ロード、ソフトウェアの展開、Makefile の設定、サーバの作成の五つのス
  テップが必要です。

  2.1.  事前に必要なもの

  [訳注] この節は基本的に OpenLDAP 2.0.x に関して説明しています。

  LDAPv3 に完全準拠するために、OpenLDAP のクライアントとサーバは次にあげ
  るソフトウェアがインストールされていることを必要とします。

  OpenSSL TLS ライブラリ

  OS によってはこのライブラリが基盤システムの一部あるいはオプションのソ
  フトウェアコンポーネントとして提供されているかもしれませんが、OpenSSL
  はたいてい別にインストールが必要となります。 OpenSSL は
  http://www.openssl.org  から入手できます。

  Kerberos 認証サービス

  OpenLDAP のクライアントとサーバは、Kerberos ベースの認証サービスをサ
  ポートします。特に OpenLDAP では、Heimdal か MIT Kerberos V パッケージ
  のいずれかを用いた SASL/GSSAPI 認証機構をサポートします。 Kerberos
  ベースの SASL/GSSAPI 認証を使うのであれば、 Heimdal か MIT Kerberos V
  をインストールしておいてください。 Heimdal Kerberos は
  http://www.pdc.kth.se/heimdal  から入手
  できます。

  MIT Kerberos は http://web.mit.edu/kerberos/www
   から入手できます。 Kerberos が提供す
  るような強固な認証サービスの利用を強く勧めます。

  Cyrus's Simple Authentication and Security Layer ライブラリ

  OS によってはこのライブラリが基盤システムの一部あるいはオプションのソ
  フトウェアコンポーネントとして提供されているかもしれませんが、 Cyrus
  SASL はたいてい別にインストールが必要となります。 Cyrus SASL は
  http://asg.web.cmu.edu/sasl/sasl-library.html
   から入手できま
  す。Cyrus SASL は、OpenSSL と Kerberos/GSSAPI のライブラリがインストー
  ルされていれば、それらを使うようになります。

  データベースソフトウェア

  OpenLDAP の slapd の主要なデータベースバックエンド LDBM は、エントリス
  トレージに使うデータベースパッケージを必要とします。 LDBM のデータベー
  スには Sleepycat Software の BerkeleyDB (推奨)あるいは Free Software
  Foundation の GNU Database Manager (GDBM) を利用できます。 configure
  スクリプトを実行するときに、これらのパッケージのどちらも利用できなけれ
  ば、この主要なデータベースバックエンドをサポートした slapd を構築でき
  ません。

  これら二つのパッケージは、どちらかが基盤システムの一部あるいはオプショ
  ンのソフトウェアコンポーネントとして提供されているかもしれませんし、自
  分でソフトウェアを入手してインストールする必要があるかもしれません。

  BerkeleyDB は Sleepycat Software の ダウンロードページ
  http://www.sleepycat.com/download.html
   から入手できます。これを書い
  ている時点での最新リリースであるバージョン 3.1 がお勧めです。

  GDBM は FSF のダウンロードサイト ftp://ftp.gnu.org/pub/gnu/gdbm
   から入手できます。これを書いている時
  点でバージョン 1.8 が最新リリースです。

  スレッド

  OpenLDAP はスレッドの利点を活かせるように設計されています。 OpenLDAP
  は POSIX pthreads, Mach CThreads などといったさまざまなスレッド処理系
  をサポートしています。configure スクリプトが適正なスレッドサブシステム
  を検出できない場合、 configure は不平を言ってきます。これが起きた場合
  には、OpenLDAP FAQ http://www.openldap.org/faq
   の Software - Installation - Platform
  Hints のセクションを調べてみてください。

  TCP Wrappers

  TCP wrappers (IP レベルのアクセス制御フィルタ)が事前にインストールされ
  ていれば、slapd はそれをサポートします。非公開の情報を持つサーバについ
  ては TCP wrappers やその他の IP レベルのアクセスフィルタ(IP レベルの
  ファイヤウォールに提供されるものなど)の利用を勧めます。

  2.2.  パッケージのダウンロード

  フリーに配布されている LDAP サーバには、ミシガン大学の LDAP サーバと
  OpenLDAP サーバの二つがあります。また、特定の条件の下でのみフリーであ
  るものに Netscape ディレクトリサーバがあります(たとえば、教育機関はフ
  リーで利用できます)。OpenLDAP サーバは、ミシガン大学のサーバの最新バー
  ジョンを基にしていて、メーリングリストと OpenLDAP で役立つ追加の文書が
  あります。この文書では、OpenLDAP を利用することにします。

  OpenLDAP の最新の tar+gzip バージョンは、次のところから入手できます。

       http://www.openldap.org

  ミシガン大学のサーバの最新バージョンが欲しいなら、次のところから入手で
  きます。

       ftp://terminator.rs.itd.umich.edu/ldap

  この文書を書く際には二つのバージョンの OpenLDAP パッケージを使いまし
  た。一つは最新の安定版 1.2.11 で、もう一つは新規にリリースされた 2.0.4
  です。私が使っている OS は カーネル 2.2.13 の Slackware Linux です。

  OpenLDAP のサイトには、OpenLDAP サーバの最新の開発版と安定版が置かれて
  います。この文書を更新した時点で、最新の安定版は openldap-
  stable-20000704.tgz です。最新の開発版は openldap-2.0.4.tgz です。

  [訳注] ここでいう開発版は実際にはリリース版です。翻訳時点での最新のリ
  リース版は openldap-2.0.7.tgz で、開発版はありません。安定版は
  OpenLDAP 1.2.11 ベースのものです。

  2.3.  サーバの展開

  さて、ローカルマシンに gzip で固められたパッケージをもってきて、それを
  展開することにしましょう。

  まず、このパッケージを /usr/local などの望みのディレクトリにコピーしま
  す。

  そして次のコマンドを実行します。

       tar xvzf openldap-stable.tgz

  次のコマンドでも同じことができます。

       gunzip openldap-stable.tgz | tar xvf -

  2.4.  ソフトウェアの設定

  いくつかのオプションが用意されていて、これらをカスタマイズすることによ
  り、インストールするサイトに最適なソフトウェアが作成できます。

  このソフトウェアの設定には、二つのステップしか必要ありません。

  o  ソフトウェアを展開したディレクトリ配下のサブディレクトリ include に
     あるファイル ldapconfig.h.edit を編集する。

  o  configure スクリプトを実行する(あなたがタフガイならば、configure ス
     クリプトを実行する代わりに Make-common ファイルを編集することもでき
     ます :^)。

  [訳注] 現在の OpenLDAP には Make-common ファイルは存在しません。

  ファイル include/ldapconfig.h.edit では、slapd と slurpd デーモンの所
  在などのオプションを設定できます。このファイル自体よく注釈がつけられて
  いて、デフォルトの設定は最も一般的な管理者の選択を反映しているので、急
  いでいるならこのステップを省略してください。

       vi include/ldapconfig.h.edit

  OpenLDAP サーバの配布ソースには、インストールするディレクトリやコンパ
  イラとリンカのフラグなどのオプションを指定するための設定スクリプトが付
  属しています。ソフトウェアを展開したディレクトリで次のようにタイプして
  ください。

       ./configure --help

  これは、ソフトウェアを作成する前に configure スクリプトでカスタマイズ
  できるすべてのオプションを印字します。インストールするディレクトリを設
  定するには、--prefix=pref, --exec-prefix=eprefix, --bindir=dir のオプ
  ションが有用です。普通にオプションなしで configure を実行すれば、適切
  な設定を自動検出し、デフォルトの一般的な場所にインストールするように準
  備します。ということで、そのようにしてみましょう。

       ./configure

  出力を調べて、すべてうまくいったかを確認してください。

  2.5.  サーバの作成

  ソフトウェアを設定し終えたら、ソフトウェアの作成をはじめることができま
  す。まず、次のコマンドを使って依存関係を作成します。

       make depend

  その後、次のコマンドを使ってサーバを作成します。

       make

  すべてうまくいったなら、設定したとおりに作成されているでしょう。そうで
  なければ、前のステップに戻って設定した内容を調べてください。ソフトウェ
  アを展開してできたディレクトリの下のパス doc/install/hints にあるプ
  ラットフォーム固有のヒントを確認してみてください。

  さあ、バイナリと man ページをインストールしましょう。これを行うには(イ
  ンストールする場所にもよりますが)スーパユーザになる必要があるでしょ
  う。

       su
       make install

  これで完了です。あなたはサーバのバイナリとその他いくつかのユーティリ
  ティのバイナリを手に入れました。``LDAP サーバの設定''に進んで、 LDAP
  サーバの設定方法を見てください。

  OpenLDAP 2.0 サーバのバイナリは slapd という名前です。 OpenLDAP 2.0 は
  8 月 30 日に正式にリリースされました。これは RFC 2251 に定義された
  LDAP プロトコル v3 を取り込んでいます。

  OpenLDAP 2.0 の主な特徴を次にあげます。

  o  LDAPv2 と LDAPv3 (RFC2251-2256,2829-2831) のサポート

  o  既存のクライアントとの互換性の維持

  o  IPv4 と IPv6 のサポート

  o  強力な認証機構(SASL) (RFC2829)

  o  Start TLS (RFC2830)

  o  言語タグ(RFC2596)

  o  DNSベースのサービスロケーション(RFC2247+"locate" インターネットドラ
     フト)

  o  スタンドアローンサーバの強化

  o  名前つき参照/ManageDsaIT ("nameref" インターネットドラフト)

  o  アクセス制御サブシステムの強化

  o  スレッドプーリング

  o  プリエンプティブスレッドのサポート

  o  複数リスナのサポート

  o  LDIFv1 (RFC2849)

  o  プラットフォーム/サブシステムの検出の改善

  注記:Linux Documentation Project (LDP)では LDAP Implementation HOWTO
  という文書を用意する予定です。この文書は OpenLDAP 2.0 の新機能を調べた
  い人にとってすばらしい情報源となるでしょう。この文書は 2000 年の 12 月
  中にリリースされる予定です。

  OpenLDAP パッケージの最新版では、今作成したバイナリをテストすることも
  できます。パッケージにはテストスクリプトが付属していて、次のようにして
  実行できます。

       make test

  [訳注] このテスト方法は OpenLDAP 2.0.x の場合です。 OpenLDAP 1.2.x で
  は tests サブディレクトリに移ってから make します。

  スクリプトで何か悪いことが起きたなら Ctrl-C を入力してスクリプトの実行
  を中断できます。私の場合、スクリプトの実行が完全に終了する前にスクリプ
  トの実行が停止しました。ともかくも、私の OpenLDAP の設定でもいくつかの
  成功(successfull)のメッセージを確認できています

  [訳注] 訳者の環境(Vine Linux 2.1 + OpenLDAP 2.0.7)で試したところでは、
  問題なくすべてのテストをパスしました。

  3.  LDAP サーバの設定

  [訳注] この章の説明は基本的に OpenLDAP 2.0.x に基づいています。

  ソフトウェアのインストールが完了したら、あなたのサイトで利用するための
  設定をしましょう。slapd ラインタイム設定のすべては、slapd.conf ファイ
  ルをとおして行います。このファイルは configure スクリプトで指定した
  prefix ディレクトリ(デフォルトは /usr/local/etc/openldap)にインストー
  ルされています。

  この節では slapd.conf でよく使われる設定ディレクティブについて詳しく説
  明します。全ディレクティブのリストについては slapd.conf(5) マニュアル
  ページを参照してください。設定ファイルのディレクティブは、グローバル、
  バックエンド固有、データ固有のカテゴリに分けています。各ディレクティブ
  については、その説明とともに(もしあれば)そのデフォルト値と設定例を示し
  ます。

  3.1.  設定ファイルのフォーマット

  ファイル slapd.conf は、グローバル、バックエンド固有、データベース固有
  の3タイプの設定情報から成ります。まず最初に指定するのはグローバル情報
  であり、その後に特定のバックエンド種別に関連した情報が続き、さらにその
  後に特定のデータベース実体に関連した情報が続きます。

  グローバルディレクティブは後のバックエンドやデータベース設定のディレク
  ティブで上書きでき、バックエンド設定ディレクティブはデータベース設定
  ディレクティブで上書きできます。

  ブランク行と  '#' 文字で始まるコメント行は無視されます。行が空白で始
  まっている場合、前の行からの継続であるとみなされます。 slapd.conf の一
  般的なフォーマットは次のようになります。

       # グローバル設定ディレクティブ
       <グローバル設定ディレクティブ>

       # バックエンド定義
       backend 
       <バックエンド固有ディレクティブ>

       # 1番目のデータベース定義 & 設定ディレクティブ
       database 
       <データベース固有ディレクティブ>

       # 2番目のデータベース定義 & 設定ディレクティブ
       database 
       <データベース固有ディレクティブ>

       # 続きのデータベース定義 & 設定ディレクティブ
       ...

  設定ディレクティブの中には引数をとるものがあります。引数のある場合には
  空白で区切って並べます。引数に空白を含めたい場合には、引数を二重引用符
  で囲みます。引数に二重引用符やバックスラッシュ文字 `\' を含めたい場合
  には、その文字の前にバックスラッシュ文字 `\' を置きます。

  OpenLDAP の配布物の中には設定ファイルのサンプルが付いてきます。これは
  普通 /usr/local/etc/openldap ディレクトリにインストールされます。ス
  キーマ定義(属性型とオブジェクトクラス)を含んだファイルも
  /usr/local/etc/openldap/schema ディレクトリに提供されています。

  3.2.  グローバルディレクティブ

  この節で説明するディレクティブは、バックエンドまたはデータベースの定義
  で特に上書きしない限り、すべてのバックエンドとデータベースに適用されま
  す。実際のテキストで置き換えるディレクティブの引数はブラケット <> で示
  します。

     access to  [ by    ]+
        このディレクティブは、エントリや属性の1セット( に指定)に
        対するアクセス権( に指定)を1人以上の要求者(に
        指定)に与えます。より詳しくは「アクセス制御」の例を参照してくだ
        さい。

     attributetype 
        このディレクティブは属性型を定義します。

     defaultaccess { none | compare | search | read | write }
        このディレクティブは、access ディレクティブが指定されていないと
        きに、要求者に与えるデフォルトのアクセス権を指定します。どのアク
        セス権レベルもより下位のアクセス権レベルを暗に与えます (たとえば
        read アクセス権は、search, compare アクセス権を暗に与えますが
        write アクセス権は与えません)。

        デフォルトの設定は次のとおりです。

            defaultaccess read

     idletimeout 
        アイドル状態のクライアント接続を強制的に切断するまでの秒数を指定
        します。idletimeout の値が 0 であると(デフォルト) この機能は無効
        になります。

     include 
        このディレクティブは、slapd が現在のファイルの次の行に進む前に、
        与えたファイルから追加の設定情報を読み込むことを指定します。取り
        込むファイルは、通常の slapd 設定ファイルのフォーマットに従いま
        す。ファイルの取込みは一般にスキーマ指定の記述されたファイルを取
        り込むのに使われます。

        注記:このディレクティブの取扱いには注意してください - 入れ子に
        なった include ディレクティブに制限はなく、include がループに
        なった場合でも検出されません。

     loglevel 
        このディレクティブは、デバッグ情報と操作の統計値を syslog に出力
        するレベルを指定します(現在のところ、syslogd(8) の LOG_LOCAL4
        ファシリティに記録されます)。このオプションが有効になるようにす
        るには OpenLDAP を --enable-debug 付き(デフォルト)で configure
        しなければなりません(統計に関する二つのレベルは例外で、これらは
        常に利用可能です)。どのデバックに何の数が対応しているのかを調べ
        るには -d ? を指定して slapd を起動するか、以下の表を参考にして
        ください。 に指定可能な値には次のものがあります。

        [訳注] OpenLDAP 2.0.x では slapd の -d ? 指定が無くなりました。

            -1      すべてのデバッグレベルを有効にする
            0       デバッグしない
            1       関数呼出しのトレース
            2       パケット処理のデバッグ
            4       詳細なデバッグトレース
            8       接続管理
            16      パケット送受信の印字
            32      検索フィルタ処理
            64      設定ファイル処理
            128     アクセス制御リスト処理
            256     接続/操作/結果の統計ログ
            512     エントリ送信の統計ログ
            1024    shell バックエンドとの通信の印字
            2048    エントリ解析のデバッグ印字

     たとえば次のように指定します。
         loglevel 255 あるいは loglevel -1

     このように設定すると、大量のデバッグ情報が記録されます。

     デフォルトの設定は次のとおりです。

         loglevel 256

     objectclass 
        このディレクティブはオブジェクトクラスを定義します。

     referral 
        このディレクティブは、要求を処理するためのローカルデータベースを
        見つけられなかった場合に、クライアントに戻す紹介先を指定します。

        たとえば次のように指定します。

            referral ldap://root.openldap.org

     これは、OpenLDAP プロジェクトのグローバルルート LDAP サーバに非ロー
     カルな問合せを紹介することを指定します。賢い LDAP クライアントなら
     戻されるサーバに再要求をするでしょうが、そのようなクライアントのほ
     とんどは、ホスト名の部分とオプションの識別名の部分とを持った単純な
     LDAP URL の処理方法を知っているだけです。

     sizelimit 
        このディレクティブは、検索操作から返すエントリの最大数を指定しま
        す。

        デフォルトの設定は次のとおりです。

            sizelimit 500

     timelimit 
        このディレクティブは、slapd が検索要求の応答に使う最大秒数(実時
        間)を指定します。この時間内に要求が達せられなければ、時間制限を
        超過したことを示す結果を返します。

        デフォルトの設定は次のとおりです。

            timelimit 3600

  3.3.  一般バックエンドディレクティブ

  この節のディレクティブは、そのディレクティブが定義されているバックエン
  ドにのみ適用されます。これらのディレクティブは全種別のバックエンドでサ
  ポートされます。バックエンドディレクティブは、同種別のすべてのデータ
  ベース実体に適用しますが、ディレクティブによってはデータベースディレク
  ティブで上書きされます。

     backend 
        このディレクティブは、バックエンド定義の始まりを示します。
         には、ldbm, shell, passwd などサポートされているバックエ
        ンド種別のどれかを指定します。

  3.4.  一般データベースディレクティブ

  この節のディレクティブは、そのディレクティブが定義されているデータベー
  スにのみ適用されます。これらのディレクティブは全種別のデータベースでサ
  ポートされます。

     database 
        このディレクティブは新しいデータベース実体定義の始まりを示しま
        す。 には、ldbm, shell, passwd など、サポートされている
        データベースの種別のいずれかを指定します。

        たとえば次のように指定します。

            database ldbm

     この設定は、新しい LDBM バックエンドデータベース実体定義の始まりを
     示します。

     readonly { on | off }
        このディレクティブは、データベースを「読取り専用」モードにしま
        す。このモードでデータベースを更新しようとすると "unwilling to
        perform" エラーが返ります。

        デフォルトの設定は次のとおりです。

            readonly off

     replica
        <-- [orig] replica host=[:] [bindmethod={ simple
        | kerberos | sasl }] ["binddn="] [mech=]
        [authcid=] [authzid=]
        [credentials=] [srvtab=] -->

          replica host=[:]
                  [bindmethod={ simple | kerberos | sasl }]
                  ["binddn="]
                  [mech=]
                  [authcid=]
                  [authzid=]
                  [credentials=]
                  [srvtab=]

     このディレクティブは、このデータベースの複製サイトを指定します。パ
     ラメータ host= は、スレーブ slapd の実体があるホストとポート(オプ
     ション)を指定します。 はドメイン名あるいは IP アドレスを
     使って指定します。 が与えられていなければ、標準の LDAP ポート
     番号(389)が使われます。

     パラメータ binddn= は、スレーブ slapd の更新でバインドするための DN
     を与えます。これは、スレーブ slapd のデータベースに対してアクセス権
     read/write を持った DN にしなければなりません。通常はスレーブ slapd
     の設定ファイルにある rootdn に指定してあるものを与えます。またこの
     DN は、スレーブ slapd 設定ファイルの updatedn ディレクティブに指定
     したものと一致していなければなりません。 DN にはスペースが入ってい
     ることが多いので、"binddn=" 文字列は二重引用符で囲っておくとよ
     いでしょう。

     bindmethod は、スレーブ slapd への接続に使う認証がパスワードベース
     のものか、Kerberos か、SASL かによって simple か kerberos か sasl
     になります。

     簡易認証は十分な一貫性と機密性の保護(TLS や IPSEC など)がなければ使
     うべきではありません。簡易認証は binddn と credentials パラメータの
     指定を必要とします。

     Kerberos 認証は、SASL 認証のせいで時代遅れになっています。 (特に
     KERBEROS_V4 と GSSAPI)。Kerberos 認証は binddn と srvtab パラメータ
     の指定を必要とします。

     一般には SASL 認証を使うことを勧めます。SASL 認証は mech パラメータ
     を使った機構の指定が必要です。指定する機構に依存して、認証アイデン
     ティティや証明書を authcid と credentials を使って指定できます。認
     証アイデンティティの指定には authzid パラメータを使うかもしれませ
     ん。

     replogfile 
        このディレクティブは、slapd が 変更を記録する複製ログファイルの
        名前を指定します。複製ログは通常 slapd が書き出し、slurpd が読み
        取ります。通常このディレクティブは、データベースを複製するために
        slurpd が使われている場合にのみ利用します。しかし slurpd を実行
        していなくても、トランザクションログの生成に使えます。この場合、
        複製ログファイルは無限に増え続けるので定期的に切り詰める必要があ
        ります。

     rootdn 
        このディレクティブは、このデータベースに対するアクセス権制御ある
        いは管理限度の制限に従わない DN を指定します。この DN はディレク
        トリ中のエントリである必要はありません。この DN には SASL アイデ
        ンティティを使えます。

        エントリベースの例:

            rootdn "cn=Manager,dc=example,dc=com"

     SASL ベースの例:

         rootdn "uid=root@EXAMPLE.COM"

     rootpw 
        このディレクティブは、上のオプションで与えた DN のエントリが存在
        するか、そのエントリがパスワードを持っているかにかかわらず、常に
        適用するパスワードを指定します。このディレクティブは SASL 認証の
        せいで時代遅れになっています。

        たとえば次のように指定します。

            rootpw secret

     suffix 
        このディレクティブは、このバックエンドデータベースに渡す問合せの
        DN 接尾辞を指定します。複数の suffix 行を与えてもよいですが、各
        データベース定義に少なくとも一つは必要です。

        たとえば次のように指定します。

            suffix "dc=example,dc=com"

     この指定では、DN の末尾に "dc=example, dc=com" の付いた問合せがこの
     バックエンドに渡されます。

     注記:問合せを渡すバックエンドが選択されるとき、slapd は各データ
     ベースの suffix 行を設定ファイルに現れる順番に見ていきます。した
     がって、あるデータベースの接尾辞が別のデータベースの接頭辞になって
     いる場合には、設定ファイルのより後のほうに現れるようにしなければな
     りません。

     updatedn 
        このディレクティブはスレーブの slapd にのみ適用できます。この
        ディレクティブは複製の変更を許す DN を指定します。これには、複製
        の変更をするときに slurpd(8) がバインドする DN、あるいは SASL ア
        イデンティティと関連した DN を指定します。

        エントリベースの例:

            updatedn "cn=Update Daemon,dc=example,dc=com"

     SASL ベースの例:

         updatedn "uid=slurpd@EXAMPLE.COM"

     updateref 
        このディレクティブはスレーブの slapd にのみ適用できます。これは
        複製の更新要求を送るクライアントに戻す URL を指定します。この
        ディレクティブはいくつも指定でき、各 URL が戻されます。

        たとえば次のように指定します。

            updateref  ldap://master.example.net

  3.5.  LDBM バックエンド固有ディレクティブ

  このカテゴリのディレクティブは、LDBM バックエンドデータベースにのみ適
  用されます。すなわち、"database ldbm" とある行の後で、次の "database"
  行が現れる前になければなりません。

     cachesize 
        このディレクティブは、LDBM バックエンドデータベースの実体によっ
        て管理されるメモリ内キャッシュのエントリ数を指定します。

        デフォルトの設定は次のとおりです。

            cachesize 1000

     dbcachesize 
        このディレクティブは、オープンされている索引ファイルそれぞれと関
        連づけられているメモリ内キャッシュのサイズをバイト数で指定しま
        す。基板のデータベース方式でサポートされなければ、このディレク
        ティブは黙って無視されます。この数を増やすとより多くのメモリを使
        いますが、劇的な性能の向上が得られます。特に 更新と索引の作成で
        性能の向上が顕著です。

        デフォルトの設定は次のとおりです。

            dbcachesize 100000

     dbnolocking
        このディレクティブが指定されるとデータベースのロックが無効になり
        ます。このディレクティブは、データのセキュリティを犠牲にしてでも
        性能を上げたい場合に使います。

     dbnosync
        このディレクティブは、変更に対するメモリ内の変更をディスク上の内
        容とすぐには同期をとらないようにします。このディレクティブは、
        データのセキュリティを犠牲にしてでも性能を上げたい場合に使いま
        す。

     directory 
        このディレクティブは、データベースと関連する索引を含んだ LDBM
        ファイル郡を置くディレクトリを指定します。

        デフォルトの設定は次のとおりです。

            directory /usr/local/var/openldap-ldbm

     index { | default} [pres,eq,approx,sub,none]
        このディレクティブは、与えた属性について管理する索引を指定しま
        す。  だけが与えられた場合、デフォルトの索引が管理され
        ます。たとえば次のように指定します。

            index default pres,eq
            index objectClass,uid
            index cn,sn eq,sub,approx

     1行目は、索引のデフォルトセットを存在と等価性を管理するように設定
     します。2行目は、objectClass と uid 属性型についてデフォルトの索
     引(pres, eq)を管理するように設定します。3行目は、cn と sn 属性型に
     ついて等価性、部分文字列、近似の索引を管理するように設定します。

     mode 
        このディレクティブは、新たに作成されるデータベース索引ファイルの
        持つファイル保護モードを指定します。

        デフォルトの設定は次のとおりです。

            mode 0600

  3.6.  他のバックエンドデータベース

  slapd は、デフォルトの LDBM の他にもいくつものバックエンドデータベース
  種別をサポートしています。

  o  ldbm: Berkeley または GNU DBM 互換のバックエンド

  o  passwd: /etc/passwd への読取り専用のアクセスを提供

  o  shell: シェル(外部プログラム)バックエンド

  o  sql: SQL プログラムが可能なバックエンド

  詳しくは {{slapd.conf}}(5) manpage を参照してください。

  3.7.  アクセス制御の例

  ``グローバルディレクティブ''の説明にあるアクセス制御機能は実に強力で
  す。この節では、アクセス制御の利用例をいくつか示します。まずは、簡単な
  例から。

       access to * by * read

  この access ディレクティブは、あらゆる人に読取り(read)アクセス権を与え
  ます。これだけを指定した場合には、次の defaultaccess 行と同じことにな
  ります。

       defaultaccess read

  次の例は、DN でエントリを選択するのに正規表現を利用しているところを示
  しています。この二つのアクセス権宣言の順番は重要です。

       access to dn=".*, o=U of M, c=US"
           by * search
       access to dn=".*, c=US"
           by * read

  この例では、読取り(read)アクセス権が c=US サブツリー配下のエントリに与
  えられますが、"o=U of M, c=US" サブツリー配下に限っては検索(search) ア
  クセス権しか与えられません。このアクセス権指定の順序を逆にすると、すべ
  ての "U of M" エントリは "c=US" エントリでもあるので、 "U of M" の方の
  指定が全く適用されなくなってしまいます。

  次の例も順序の重要性を示していますが、今度はアクセス権指定の他に "by"
  節の順序についても示しています。またこの例では、特定の属性へのアクセス
  権を与える属性セレクタと、さまざまな  セレクタの利用法についても
  示しています。

       access to dn=".*, o=U of M, c=US" attr=homePhone
           by self write
           by dn=".*, o=U of M, c=US" search
           by domain=.*\.umich\.edu read
           by * compare
       access to dn=".*, o=U of M, c=US"
           by self write
           by dn=".*, o=U of M, c=US" search
           by * none

  この例は、"o=U of M, c=US" サブツリーのエントリに適用されます。属性
  homePhone を除くすべての属性に対し、当該エントリ自体には書込み
  権(write)を与え、他の "U of M" 配下のエントリには検索権(search)を与
  え、その他のエントリにはアクセス権を与えません。属性 homePhone に対し
  ては、当該エントリ自体には書込み権(write)を与え、他の "U of M" エント
  リには検索権(search)を与え、umich.edu ドメイン内のどこからか接続するク
  ライアントには読取り権を与え、その他のエントリには比較権(compare)を与
  えます。

  特定の DN に属性の追加と除去を許すことが有用なことがあります。たとえ
  ば、あるグループを作成し、人々に member 属性への追加と除去を自分自身の
  DN に限ってできるようにしたい場合、次のようなアクセス権宣言で実現でき
  ます。

       access to attr=member,entry
           by dnattr=member selfwrite

  セレクタ dnattr  は、アクセス権が member 属性にリストされているエ
  ントリに適用されることを指定します。アクセス権セレクタ selfwrite は、
  そのような member 達が自分自身の DN だけを属性から追加/削除できること
  を指定します。また、entry 属性を追加しておくことが必要です。なぜなら、
  エントリのどの属性にアクセスするにせよ、エントリへのアクセス権が必要に
  なるからです。

  [訳注] "entry" はエントリ内に実在しない特殊な属性で、属性へのアクセス
  権指定でエントリへのアクセス権を指定するために使うものです。

   節の中の attr=member 構成要素は、節 "dn=* attr=member" の省略形
  であることに注目してください(すなわち、すべてのエントリの member 属性
  に一致します)。

  注記:LDAP のアクセス制御についてもっと知りたければ OpenLDAP
  Administrator's Guide (http://www.openldap.org) を調べてください。

  3.8.  設定ファイルの例

  以下は設定ファイルの例です。例の所々には説明をつけてあります。これは二
  つのデータベースを定義していて、それぞれ X.500 ツリーの別々の部分を処
  理します。両方ともデータベースには LDBM を使っています。説明の都合上、
  例には行番号をつけていますが、実際のファイルには行番号をつけません。ま
  ずはグローバル設定セクションから説明します。

         1.    # example config file - global configuration section
         2.    include /usr/local/etc/schema/core.schema
         3.    referral ldap://root.openldap.org
         4.    access to * by * read

  行 1 はコメントです。行 2 は core スキーマ定義を含んだ別の設定ファイル
  を取り込みます。行 3 の referral ディレクティブは、後に定義するデータ
  ベースのどれかにローカルでない問合せについて、ホスト root.openldap.org
  で動作している標準ポート(389)の LDAP サーバを参照することを意味しま
  す。

  行 4 はグローバルなアクセス制御です。これは、データベースのアクセス制
  御に一致するものがない場合、あるいは、アクセスの対象となるオブジェクト
  が (Root DSE のように)どのデータベースの制御下にもない場合にのみ使われ
  ます。

  設定ファイルの例の次の部分は、ツリーの "dc=example,dc=com" 配下にある
  ものについての問合せを処理する LDBM バックエンドを定義します。このデー
  タベースは二つのスレーブ slapd に複製されます。スレーブの一つは
  truelies で、もう一つは judgmentday です。いくつかの属性について索引が
  管理され、userPassword 属性は認証されていないものからのアクセスから保
  護されます。

         5.    # ldbm definition for the example.com
         6.    database ldbm
         7.    suffix "dc=example, dc=com"
         8.    directory /usr/local/var/openldap
         9.    rootdn "cn=Manager, dc=example, dc=com"
        10.    rootpw secret
        11.    # replication directives
        12.    replogfile /usr/local/var/openldap/slapd.replog
        13.    replica host=slave1.example.com:389
        14.            binddn="cn=Replicator, dc=example, dc=com"
        15.            bindmethod=simple credentials=secret
        16.    replica host=slave2.example.com
        17.            binddn="cn=Replicator, dc=example, dc=com"
        18.            bindmethod=simple credentials=secret
        19.    # indexed attribute definitions
        20.    index uid pres,eq
        21.    index cn,sn,uid pres,eq,approx,sub
        22.    index objectClass eq
        23.    # ldbm access control definitions
        24.    access to attr=userPassword
        25.            by self write
        26.            by anonymous auth
        27.            by dn="cn=Admin,dc=example,dc=com" write
        28.            by * none
        29.    access to *
        30.            by self write
        31.            by dn="cn=Admin,dc=example,dc=com" write
        32.            by * read

  行 5 はコメントです。データベース定義の始まりは、行 6 の database キー
  ワードで示します。行 7 は、このデータベースに渡す問合せのための DN 接
  尾辞を指定します。行 8 は、データベースファイルを置くディレクトリを指
  定します。

  行 9 と 10 は、このデータベースの「スーパユーザ」エントリとそのパス
  ワードを指定します。このエントリはアクセス制御あるいはサイズ/時間制限
  に従いません。

  行 11 から 18 は複製の設定です。行 11 は複製ログファイルを指定します(
  データベースの変更が記録されます - このファイルには slapd が書き込
  み、slurpd が読み出します)。行 12 から 14 は複製が作られるホスト、更新
  を行うときのバインドのための DN、バインド方法(簡易認証)、binddn のため
  の証明書(パスワード)を指定します。行 15 から 18 は、第2の複製サイトを
  指定します。

  行 20 から 22 は、さまざまな属性のために管理する索引を指定します。

  行 24 から 32 は、データベース内のエントリのためのアクセス制御を指定し
  ます。すべてのエントリの {{EX:userPassword}} 属性は、そのエントリ自身
  および "admin" エントリから更新可能です。この属性は認証の目的には使え
  ますが読み取れません。その他すべての属性は、そのエントリ自身および
  "admin" エントリから更新可能で、認証されたユーザから読み取れます。

  設定ファイルの例の次の部分は、別の LDBM データベースを定義します。この
  LDBM データベースは dc=example,dc=net サブツリーに関する問合せを処理し
  ます。行 38 がないと、行 4 のグローバルアクセス規則により読み取りアク
  セスが許可されることに注意してください。

   33.    # ldbm definition for example.net
   34.    database ldbm
   35.    suffix "dc=example, dc=net"
   36.    directory /usr/local/var/ldbm-example-net
   37.    rootdn "cn=Manager, dc=example, dc=com"
   38.    access to * by users read

  4.  LDAP サーバの実行

  [訳注] この章の説明は基本的に OpenLDAP 2.0.x に基づいています。

  slapd はスタンドアローンサーバとして動作するように設計されています。こ
  れによりサーバは、キャッシング、基盤データベースにおける並行処理問題の
  管理、システムリソースの維持といった利点が得られます。inetd(8) から実
  行するオプションはなくなりました。

  4.1.  コマンドラインオプション

  slapd は、マニュアルページに詳説されているように多くのコマンドラインオ
  プションをサポートしています。この節ではよく使われる少数のオプションに
  ついて詳説します。

     -f 
        このオプションは、slapd の設定ファイルを明示します。デフォルトは
        普通 /usr/local/etc/openldap/slapd.conf です。

     -h 
        このオプションは代替のリスナ設定を指定します。デフォルトは
        ldap:/// です。これはデフォルトの LDAP ポート 389 ですべてのイン
        タフェースを扱う TCP上の LDAP を意味します。このオプションには、
        特定のポスト/ポートのペアもしくは他のプロトコルスキーム(ldaps://
        や ldapi:// など)を指定できます。たとえば -h "ldaps://
        ldap://127.0.0.1:667" は、二つのリスナを作成します。一つはデフォ
        ルトの LDAP/SSL ポート 636 ですべてのインタフェースを扱う SSL 上
        の LDAP です。もう一つはポート 667 で localhost (loopback)のイン
        タフェースを扱う TCP上の LDAP です。ホストは、IPv4 の数値とドッ
        トを使った形式でもホスト名ででも指定できます。

     -n 
        このオプションは、ログ採取などで使われるサービス名を指定します。
        デフォルトのサービス名は slapd です。

     -l 
        このオプションは syslog(8) 機能のローカルユーザを指定します。値
        は LOCAL0, LOCAL1, LOCAL2, から LOCAL7 まで指定できます。デフォ
        ルトは LOCAL4 です。このオプションはシステムによってサポートされ
        ていないことがあります。

     -u user -g group
        これらのオプションは、それぞれ slapd を実行するためのユーザとグ
        ループを指定します。user にはユーザ名か uid を指定します。group
        にはグループ名か gid を指定します。

     -r directory
        このオプションは実行時ディレクトリを指定します。 slapd はリスナ
        をオープンした後、設定ファイルの読込みやバックエンドの初期化をす
        る前に、このディレクトリに chroot(2) します。

     -d  | ?
        このオプションは slapd のデバッグレベルを  に設定します。
        レベルが `?' 文字の場合、さまざまなデバッグレベルを表示し、他の
        オプション指定を無視して slapd は終了します。現在サポートされて
        いるデバッグレベルには次のものがあります。

        -1      すべてのデバッグレベルを有効にする
        0       デバッグしない
        1       関数呼出しのトレース
        2       パケット処理のデバッグ
        4       詳細なデバッグトレース
        8       接続管理
        16      パケット送受信の印字
        32      検索フィルタ処理
        64      設定ファイル処理
        128     アクセス制御リスト処理
        256     接続/操作/結果の統計ログ
        512     エントリ送信の統計ログ
        1024    shell バックエンドとの通信の印字
        2048    エントリ解析のデバッグ印字

     複数のデバッグレベルを有効にすることもできます。要求するレベルそれ
     ぞれについてデバッグオプションを指定してもよいですし、デバッグレベ
     ルを加算して指定してもかまいません。つまり、関数呼出しのトレースと
     設定ファイルの処理の観察を行いたければ、レベルをその二つのレベルの
     合計に設定すればよいのです(この場合は -d 65)。また、そのような加算
     を slapd にさせることもできます(たとえば -d 1 -d 64)。より詳しくは
      ファイルを参照してください。

     注記:統計ログを出力する二つのレベル以外のデバッグ情報を出力できる
     ようにするには、slapd を -DLDAP_DEBUG 付きで slapd をコンパイルして
     おかなければなりません。

     [訳注] OpenLDAP 2.0.x では -d ? 指定が無くなりました。

  4.2.  LDAP サーバの起動

  一般に slapd は次のように実行します。

      /usr/local/etc/libexec/slapd [
一覧に戻る
グリーンネット・トップページへ戻る

http://www.green.ne.jp/