[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
ebnetd
, ndtpd
, ebhttpd
を始動させるためには、まず
設定ファイルを編集する必要があります。
サーバは、始動時および再始動時にこのファイルを読み込みます。
このファイルの内容によって、サーバの様々な挙動が決定されます。
EBNETD を `/usr/local' 以下にインストールし、かつ、マシン固有の
読み込み専用のデータを置くディレクトリ (sysconfdir
) の位置を
変更していなければ、無指定時に読み込まれる設定ファイルは
`/usr/local/etc/ebnetd.conf' になります。
設定ファイルの位置は、コマンドラインオプション `--configuration-file'
(あるいは `-c') を用いることで変更が可能です
(「ebnetd
のオプション」節を参照)。
設定ファイルの中では、空行、および空白以外の最初の文字がハッシュ記号 (`#') である行は無視されます。 他の行はすべて、単独指示子 (single directive) か 複合指示子 (group directive) のいずれかでなくてはなりません。 単独指示子と複合指示子は、どのような順序で定義しても差し支えありません。
各行は、改行文字を含め 511 文字を越えてはなりません。
3.1 単独指示子の一般形 3.2 単独指示子の一覧 3.3 複合指示子の一般形 3.4 book
複合指示子複合指示子の一覧 3.5 設定ファイルの例
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
単独指示子とは、1 行で完結する指示子です。 単独指示子の一般形は次の通りです。
指示子の名前 指示子の値 |
以下の例では、syslog-facility
が指示子の名前、`local0' が
その値です。
syslog-facility local0 |
指示子名の大文字と小文字は区別されますので、`syslog-facility' を `Syslog-Facility' と書くことはできません。 指示子の名前と値の区切りには、空白かタブを用います。 連続した空白とタブが、行頭および行末にあった場合、それらは無視されます。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
単独指示子には次のようなものがあります。
ebnet-port
ebnet-port
指示子では、ebnetd
が見張るポートの番号を指定
します。
指示子の値は、TCP のサービス名 (例: `EBNET') か、ポート番号
(例: `22010') でなくてはいけません。
ebnetd
を inetd
経由で起動した場合は、この指示子は
無視されます。
この指示子は必ずしも定義する必要はありません。
また、2 度以上定義することはできません。
無指定時の値は `EBNET' です。
ndtpd
, ebhttpd
はこの指示子を常に無視します。
ndtp-port
ndtp-port
指示子では、ndtpd
が見張るポートの番号を指定
します。
指示子の値は、TCP のサービス名 (例: `NDTP') か、ポート番号
(例: `2010') でなくてはいけません。
ebnetd
を inetd
経由で起動した場合は、この指示子は
無視されます。
この指示子は必ずしも定義する必要はありません。
また、2 度以上定義することはできません。
無指定時の値は `NDTP' です。
ebnetd
, ebhttpd
はこの指示子を常に無視します。
http-port
http-port
指示子では、ebhttpd
が見張るポートの番号を
指定します。
指示子の値は、TCP のサービス名 (例: `HTTP') か、ポート番号
(例: `80') でなくてはいけません。
ebhttpd
を inetd
経由で起動した場合は、この指示子は
無視されます。
この指示子は必ずしも定義する必要はありません。
また、2 度以上定義することはできません。
無指定時の値は `HTTP' です。
ebnetd
, ebhttpd
はこの指示子を常に無視します。
user
user
指示子では、サーバプロセスの実効ユーザを指定します。
指示子の値は、ユーザ名 (例: `nobody') か、ユーザ ID (例: `65535')
でなくてはいけません。
別のユーザに実効ユーザを変える場合は、スーパユーザ特権を有した状態で
サーバを起動しなくてはなりません。
実効ユーザの変更に失敗すると、サーバは走行の継続を断念します。
この指示子は必ずしも定義する必要はありません。
また、2 度以上定義することはできません。
この指示子を定義しなかった場合、サーバプロセスの実効ユーザは変化
しません。
`ndtpuser' のようなダミーのユーザアカウントを一つ作って、それを この指示子で指定することをお薦めします。
group
group
指示子では、サーバプロセスの実効グループを指定します。
指示子の値は、ユーザ名 (例: `nogroup') か、グループ ID
(例: `65534') でなくてはいけません。
実効グループの変更に失敗すると、サーバは走行の継続を断念します。
この指示子は必ずしも定義する必要はありません。
また、2 度以上定義することもできません。
この指示子を定義しなかった場合、サーバプロセスの実効グループは変化
しません。
`ndtpgrp' のようなダミーのグループアカウントを一つ作って、それを この指示子で指定することをお薦めします。
max-clients
max-clients
指示子では、同時にサーバに接続できるクライアントの
数の上限を指定します。
指示子の値は、0 以上の整数でなくてはいけません。
この指示子は必ずしも定義する必要はありません。
また、2 度以上定義することはできません。
無指定時の値は `1' です。
指示子の値を 0 に設定すると、無制限になります。
hosts
hosts
指示子では、どのホストがサーバに接続でき、どのホストが
接続できないのかを指定します。
指示子の値は IP アドレス、ホスト名、アドレス/ネットマスク の
いずれかです。
加えて、直前に感嘆符 (`!') を付けることができます。
指示子の値が感嘆符で始まっていた場合は、それに続く IP アドレスまたは
ホスト名にマッチするホストからの接続要求は拒否します。
感嘆符がない場合は、指示子の値にマッチするホストからの接続要求は許可
します。
# `host.xxx.yyy.jp' からの接続を許可する。 hosts host.xxx.yyy.jp # `127.0.0.1' からの接続を許可する。 hosts 127.0.0.1 # `192.24.1.0/24'.からの接続を拒否する。 hosts !192.24.1.0/24 |
ホスト名に限り、アスタリスク (`*') と疑問符 (`?') を使う ことができます。 アスタリスクは、先頭の感嘆符を除いた任意の 0 文字以上の文字列にマッチ します。
# `xxx.yyy.jp' ドメインのホストからの接続を拒否する。 hosts !*.xxx.yyy.jp # どのホストからの接続も許可する。 hosts * |
疑問符は 未知のホスト名 を表します。
# ホスト名が分からないホストからの接続を拒否する。 hosts !? |
この指示子は必ずしも定義する必要はありません。
また、何度でも定義することが可能です。
設定ファイルに hosts
指示子が無くてもエラーにはなりませんが、
どのクライアントもサーバにはアクセスできなくなります。
いずれの hosts
指示子にもマッチしないホストからの接続要求は拒否
されます。
複数の hosts
にマッチする場合は、設定ファイルの先頭に最も近い
ものが採用されます。
以下の例では、`sub1.xxx.yyy.jp' ドメインに属するホストからの 接続要求は拒否していますが、それ以外の `xxx.yyy.jp' ドメインに 属するホストからの接続要求は許可しています。
hosts !*.sub1.xxx.yyy.jp hosts *.xxx.yyy.jp |
この例では、指示子の順序は重要です。 順序を引っくり返してしまうと、`sub1.xxx.yyy.jp' を含め、 `xxx.yyy.jp' ドメインに属するすべてのホストがサーバに接続できて しまいます。
# 間違い!!! hosts *.xxx.yyy.jp hosts !*.sub1.xxx.yyy.jp |
ホスト名を比較する際、サーバは常にクライアントの正式ホスト名を使用 します。 ホスト名は、クライアントのアドレスから DNS などの名前解決のサービス を利用して取得します。 別名は使用されませんので、注意して下さい。
IPv6 アドレスおよび IPv6 アドレス/ネットマスク パターンを指定 することも可能です。 IPv6 対応機能を有効にしてコンパイルされていないサーバは IPv4 クライアントとしか通信できませんが、設定ファイルに書かれた IPv6 アドレスを解釈することはできます。
# `12ab:0:0:cd3::/60' と `::1' からの接続を許可する。 hosts ::1 hosts 12ab:0:0:cd3::/60 |
hosts
指示子では、IPv4 アドレス (例 `192.168.1.1') とそれ
に対応する IPv4 射影 IPv6 アドレス (例 `::ffff:192.168.1.1') は
等価になります。
つまり、IPv4 クライアント `192.168.1.1' は hosts
指示子
`::ffff:192.168.1.1' にマッチし、IPv6 クライアント
`::ffff:192.168.1.1' は hosts
指示子 `192.168.1.1'
にマッチします。
timeout
timeout
指示子では、交信が途絶えたクライアントとの接続を
サーバが切断するまでの秒数を指定します。
指示子の値は、0 以上の整数でなくてはいけません。
この指示子は必ずしも定義する必要はありません。
また、2 度以上定義することはできません。
無指定時の値は `900' (15分) です。
指示子の値を 0 に設定すると、時間切れによる切断は行いません。
work-path
work-path
指示子では、サーバの作業用ディレクトリ
のパスを指定します (「作業用ディレクトリ」節を参照)。
指示子の値は、絶対パスでなくてはいけません。
サーバはこのディレクトリの下に作業用のファイルをいくつか作成します。
また、異常終了によってコアファイルをダンプするときは、このディレクトリ
に作成します。
この指示子は必ずしも定義する必要はありません。
また、2 度以上定義することはできません。
EBNETD を `/usr/local' 以下にインストールし、かつ、マシン固有の
更新されうるデータを置くディレクトリ (localstatedir
) を変更して
いなければ、無指定時の値は `/usr/local/var/ebnetd/' になります。
max-hits
max-hits
指示子では、一回の検索でサーバが返すヒット数の上限を
指定します。
サーバは、この指示子で指定された値と同じだけのヒット数を見つけた時点
で、ただちに検索を中止します。
この指示子は必ずしも定義する必要はありません。
また、2 度以上定義することはできません。
無指定時の値は `50' です。
指示子の値を 0 に設定すると、無制限になります。
ebnetd
はこの指示子を常に無視します。
max-text-size
max-text-size
指示子は、サーバがクライアントへの応答 1 回で
返すテキストのバイト数の上限を指定します。
この指示子は必ずしも定義する必要はありません。
また、2 度以上定義することはできません。
無指定時の値は `32768' です。
指示子の値を 0 に設定すると、無制限になります。
ebnetd
はこの指示子を常に無視します。
syslog-facility
syslog-facility
指示子では、syslog のファシリティを指定します
(例: `daemon', `local0' など)。
この指示子は必ずしも定義する必要はありません。
また、2 度以上定義することはできません。
無指定時は `daemon' を用います。
また、サーバが設定ファイルを読み込み終わるまでは、`daemon' が
用いられます。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
複合指示子 (指示命令) とは、記述が設定ファイル内の複数行に渡る指示子です。 複合指示子の一般形は次の通りです。
begin 複合指示子の名前 副指示子の名前 副指示子の値 : : (繰り返し) : end |
キーワード begin
は、複合指示子の開始を表します。
begin
は後ろに 複合指示子の名前 を引数として取ります。
begin
と 複合指示子の名前 は空白かタブで区切り、両方とも
同じ行の中に置きます。
キーワード end
は、複合指示子の終了を表します。
end
は、単独で 1 行にして置きます。
EBNETD バージョン 1.0 では、使用できる複合指示子の名前は
book
だけです。
それぞれの 副指示子 は、begin
と end
の行の間に
置きます。
副指示子に関する記述の一般的な規則は、単独指示子と変わりません
(たとえば、副指示子の名前と 副指示子の値 は空白かタブで
区切ることなど)。
以下は、 book
複合指示子の記述例です。
begin book name EJDICT title English Japanese Dictionary path /mnt/cdrom hosts 127.0.0.1 hosts host.your.domain end |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
book
複合指示子
一つの book
複合指示子 は一冊の CD-ROM 書籍に対応しますので、
CD-ROM 書籍一冊ごとにこの複合指示子を定義しなくてはいけません。
book
複合指示子の副指示子として、EBNETD が認識するものは次の通り
です。
name
name
副指示子では、その書籍の名前を指定します。
副指示子の値に用いることができるのは、英小文字 (`a'..`z')、
数字 (`0'..`9')、下線 (`_')、ハイフン (`-') だけで、
長さは 14 文字までです。
この名前は、書籍を識別するために使いますので、各書籍には異なる名前を
付けなくてはいけません。
この副指示子は、それぞれの book
複合指示子に必須です。
また、1 つの book
複合指示子で 2 度以上定義することはできません。
title
title
副指示子では、その書籍の題名を指定します。
副指示子の値には、改行文字とナル文字 (`\0') を除く任意の文字を
使って指定することができますが、長さは 80 バイトまでです。
EUC (Extended Unix Code) を用いれば日本語の文字も使用可能です。
副指示子の値の中に空白やタブを用いることも可能で、これらは他の文字と
同じく一文字として解釈されます。
この副指示子は、それぞれの book
複合指示子に必須です。
また、1 つの book
複合指示子で 2 度以上定義することはできません。
path
path
副指示子では、その書籍の絶対パスを指定します。
パスはその書籍のトップディレクトリ、つまり `catalog' または
`catalogs' ファイルの存在するディレクトリを指してしなくては
いけません。
この副指示子は、それぞれの book
複合指示子に必須です。
また、1 つの book
複合指示子で 2 度以上定義することはできません。
appendix-path
appendix-path
副指示子では、その書籍に対応する appendix (付録)
パッケージの絶対パスを指定します。
パスは appendix パッケージのトップディレクトリ、つまり `catalog'
または `catalogs' ファイルの存在するディレクトリを指してしなくては
いけません。
この副指示子は、必ずしも定義する必要はありません。
また、1 つの book
複合指示子で 2 度以上定義することはできません。
書籍を使う上で、appendix パッケージは必須ではありませんが、ないと外字が
識別不可能になるため、読みづらいかも知れません。
max-clients
max-clients
副指示子には、この書籍を同時にいくつのクライアントが
使うことができるのかを指定します。
副指示子の値には、0 以上の整数を指定します。
この副指示子は、必ずしも定義する必要はありません。
また、1 つの book
複合指示子で 2 度以上定義することはできません。
無指定時の値は `1' です。
0 を指定すると、無制限になります。
work-path
(「5.3 作業用ディレクトリ」節を参照) に共通の値をセットしておくと、
クライアントの数が ebnetd
, ndtpd
, ebhttpd
間で
共有されます。
たとえば、ある瞬間にある書籍をアクセスしている ebnetd
クライアント
が 2 つ、ndtpd
クライアントが 3 つあったとすると、サーバは
5 つのクライアントが書籍にアクセスしているものと判断します。
hosts
hosts
副指示子には、この書籍にどのホストがアクセスできて、どの
ホストができないのかを指定します。
この副指示子は、必ずしも定義する必要はありません。
また、1 つの book
複合指示子で何度でも定義することが可能です。
book
複合指示子が hosts
副指示子を持たなくてもエラーには
なりませんが、その書籍はどのクライアントからもアクセスできません。
この副指示子の表記方法は、単独指示子の hosts
と同じです。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
EBNETD を `/usr/local' 以下にインストールし、かつ、マシン固有の
読み込み専用のデータを置くディレクトリ (sysconfdir
) の位置を変更
していなければ、この設定ファイルのサンプルは
`/usr/local/etc/ebnetd.conf.sample' にインストールされています。
###################################################################### # ebnetd/ndtpd/ebhttpd の設定ファイルのサンプル # (このファイルを `ebnetd.conf' にコピーして、編集して下さい) ###################################################################### ### `ebnetd' が見張るポート番号 ### (無指定の場合: ebnet) # ebnet-port ebnet ### `ndtpd' が見張るポート番号 ### (無指定の場合: ndtp) # ndtp-port ndtp ### `ebhttpd' が見張るポート番号 ### (無指定の場合: http) # http-port http ### サーバのプロセスの所有ユーザ ### (無指定の場合: なし) user ndtpuser ### サーバのプロセスのグループ ### (無指定の場合: なし) group ndtpgrp ### サーバに同時に接続できるクライアントの数 ### (無指定の場合: 1) # max-clients 1 ### サーバに接続できるホスト、できないホスト ### (無指定の場合: なし) hosts 127.0.0.1 hosts ::1 hosts !? hosts host.your.domain ### サーバが交信の途絶えたコネクションを切るまでの時間 ### (無指定の場合: 900) # timeout 900 ### 作業用ディレクトリのパス ### サーバを起動する前に、このディレクトリを作り、サーバプロセスが ### 書き込めるようにしておいて下さい。 ### (無指定の場合: /usr/local/var/ebnetd) # work-path /usr/local/var/ebnetd ### 一回の検索で、サーバが返す、ヒットしたエントリの最大個数 ### (無指定の場合: 50) # max-hits 50 ### クライアントへの一回の応答で、サーバが返すテキストの最大サイズ ### (default: 32768) # max-text-size 32768 ### syslog のファシリティ ### (無指定の場合: daemon) syslog-facility local0 ### ### 書籍のエントリ ### begin book ### 書籍名 ### (必須) name JITENBAN97 ### 書籍の題名 ### (必須) title Jitenban 97 ### 書籍のトップディレクトリ ### (必須) path /cdrom ### appendix (付録) パッケージのトップディレクトリ ### (無指定の場合: なし) appendix-path /usr/local/share/eb/appendix/jitenban97-2.1 ### 同時にアクセスできるクライアントの数 ### (無指定の場合: 1) max-clients 1 ### この書籍を利用できるホスト、できないホスト ### (無指定の場合: なし) hosts 127.0.0.1 hosts ::1 hosts !? hosts host.your.domain end ### もし、CD-ROM 書籍が他にもあるなら、`book' 複合指示子 (`begin book' ### から `end' の間の行) を追加して下さい。`book' 複合指示子は、 ### 書籍一冊毎に必要です。 |
[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |