Provided by: manpages-ja-dev_0.5.0.0.20140515+dfsg-2_all bug

名前

       hosts_access, hosts_ctl, request_init, request_set - アクセスコントロールライブラリ

書式

       #include "tcpd.h"

       extern int allow_severity;
       extern int deny_severity;

       struct request_info *request_init(request, key, value, ..., 0)
       struct request_info *request;

       struct request_info *request_set(request, key, value, ..., 0)
       struct request_info *request;

       int hosts_access(request)
       struct request_info *request;

       int hosts_ctl(daemon, client_name, client_addr, client_user)
       char *daemon;
       char *client_name;
       char *client_addr;
       char *client_user;

説明

       このドキュメントで説明されるルーチンは  libwrap.a  ライブラ リの一部である。このライブラリ
       は、特定のルールに従うアクセスコン      トロール書式を提供する。このアクセスコントロールに
       は、ルールに合 致した場合、シェルコマンドが実行できるというオプション機能も含ま れている。

       request_init()     は、クライアントのリクエストについての情報のスト     ラクチャを初期化す
       る。request_set() は、すでに初期化されているリ  クエストのストラクチャを更新するためにつか
       う。どちらの関数も key-value という 変数-値(variable-length) のペアによるリストを得 て、最
       初の引き数(first argument)を返す。引き数のリストはゼロの値 を持つ key で終る。すべての文字
       列の値を持つ引き数(argument)はコピーされる。  有効な key (そして対応する値のタイプ) は以下
       のとおり:

       RQ_FILE (int)
              リクエストと関連付けされるファイルディスクリプタ

       RQ_CLIENT_NAME (char *)
              クライアントホスト名

       RQ_CLIENT_ADDR (char *)
              クライアントのネットワークアドレスの名称(a printable representation)

       RQ_CLIENT_SIN (struct sockaddr_in *)
              クライアントのネットワークアドレス内部での名称(an        internal         printable
              representation)とポート番号。ストラクチャの中身はコピー されない。

       RQ_SERVER_NAME (char *)
              エンドポイントにあるサーバのホスト名

       RQ_SERVER_ADDR (char *)
              エンドポイントにあるサーバアドレスの名称(a printable representation)

       RQ_SERVER_SIN (struct sockaddr_in *)
              エンドポイントにあるサーバのネットワークアドレス内部での名称(an  internal printable
              representation)とポート番号。ストラクチャの中 身はコピーされない。

       RQ_DAEMON (char *)
              サーバホストで動作するデーモンの名前

       RQ_USER (char *)
              リクエストを発行したユーザのクライアントホストにおける名称

       hosts_access() は hosts_access(5) のマニュアルページで  解説されている、アクセスコントロー
       ルテーブルを参照する。 内部のエンドポイント情報が有効であった場合、 要求に応じてホスト名と
       クライアントユーザ名の探査が行われ、 リクエスト・ストラクチャをキャッシュする。 もしアクセ
       スが拒否された場合、hosts_access() はゼロを返す。

       hosts_ctl()  は request_init() と hosts_access() をさらに使いやす いインターフェースによっ
       て包むラッパーである (自動的にクライアン  トのユーザ名を探査するには、充分な機能とはいえな
       いけれども)。  クライアントホストアドレス、クライアントホスト名、そしてユーザ名 に対する引
       き数は、有効なデータまたは  STRING_UNKNOWN   を利用するこ   と。もしアクセスが拒否された場
       合、hosts_ctl() はゼロを返す。

       変数 allow_severitydeny_severity は受諾または拒 否するリクエストをどのように記録するか
       を指示するものである。 これらは呼び出す側によって規定されるべきものであり、アクセスコン ト
       ロールテーブルに示されるルールによっては変更される可能性がある。

返り値

       問題があれば syslog デーモンを通じて報告される。

関連項目

       hosts_access(5), ホストアクセスコントロールファイルの書式 hosts_options(5), ホストアクセス
       コントロールの拡張書式

ファイル

       /etc/hosts.allow, /etc/hosts.deny, アクセスコントロールテーブル

バグ

       hosts_access() は strtok() ライブラリ関数を使っている。 これにより、strtok()  をあてにして
       いる他のコードと干渉が おきるかもしれない。

著者

       Wietse Venema (wietse@wzv.win.tue.nl)
       Department of Mathematics and Computing Science
       Eindhoven University of Technology
       Den Dolech 2, P.O. Box 513,
       5600 MB Eindhoven, The Netherlands

                                                                                  HOSTS_ACCESS(3)