Manpages

名 前

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 [AT] wzv.nl)
Department of Mathematics and Computing Science
Eindhoven University of Technology
Den Dolech 2, P.O. Box 513,
5600 MB Eindhoven, The Netherlands