HOSTS_ACCESS

Section: C Library Functions (3)
Index JM Home Page roff page
 

名前

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


 

Index

名前
書式
説明
返り値
関連項目
ファイル
バグ
著者

This document was created by man2html, using the manual pages.
Time: 16:46:45 GMT, November 24, 2023