Man page - ruserok(3)

Packages contains this manual

Available languages:

en fr ja ro

Manual

RCMD

名 前
書 式
説 明
rcmd()
rresvport()
iruserok() と ruserok()
*_af() 版
返 り 値
バ ー ジ ョ ン
属 性
準 拠
バ グ
関 連 項 目
こ の 文 書 に つ い て

名 前

rcmd, rresvport, iruserok, ruserok, rcmd_af, rresvport_af, iruserok_af, ruserok_af - リ モ ー ト コ マ ン ド に ス ト リ ー ム を 返 す 関 数 群

書 式

#include <netdb.h> /* Or <unistd.h> on some systems */

int rcmd(char ** ahost , unsigned short inport , const char * locuser ,
const char *
remuser , const char * cmd , int * fd2p );

int rresvport(int * port );

int iruserok(uint32_t raddr , int superuser ,
const char *
ruser , const char * luser );

int ruserok(const char * rhost , int superuser ,
const char *
ruser , const char * luser );

int rcmd_af(char ** ahost , unsigned short inport , const char * locuser ,
const char *
remuser , const char * cmd , int * fd2p ,
sa_family_t
af );

int rresvport_af(int * port , sa_family_t af );

int iruserok_af(const void * raddr , int superuser ,
const char *
ruser , const char * luser , sa_family_t af );

int ruserok_af(const char * rhost , int superuser ,
const char *
ruser , const char * luser , sa_family_t af );

glibc 向 け の 機 能 検 査 マ ク ロ の 要 件 ( feature_test_macros (7) 参 照 ):

rcmd (), rcmd_af (), rresvport (), rresvport_af (), iruserok (), iruserok_af (), ruserok (), ruserok_af ():
Since glibc 2.19:
_DEFAULT_SOURCE
Glibc 2.19 and earlier:
_BSD_SOURCE

説 明

rcmd () 関 数 は 、 ス ー パ ー ユ ー ザ ー が リ モ ー ト マ シ ン で コ マ ン ド を 実 行 す る た め に 用 い ら れ る 。 こ の と き 特 権 ポ ー ト 番 号 を も と に し た 認 証 ス キ ー ム が 用 い ら れ る 。 rresvport () 関 数 は 、 特 権 ポ ー ト 空 間 の ア ド レ ス を 持 つ ソ ケ ッ ト の フ ァ イ ル デ ィ ス ク リ プ タ ー を 返 す 。 iruserok () 関 数 と ruserok () 関 数 は 、 rcmd () で サ ー ビ ス 要 求 を 行 っ た ク ラ イ ア ン ト の 認 証 を 行 う た め に サ ー バ ー が 用 い る 関 数 で あ る 。 以 上 の 4 つ の 関 数 は 、 rshd (8) サ ー バ ー に よ っ て (他 の 関 数 と と も に ) 利 用 さ れ る 。

rcmd()

rcmd () 関 数 は gethostbyname (3) を 用 い て *ahost の 参 照 を 行 う 。 ホ ス ト が 存 在 し な い 場 合 は -1 を 返 す 。 見 つ か っ た 場 合 は *ahost に ホ ス ト の 標 準 名 (standard name) を セ ッ ト し て 、 予 約 さ れ て い る イ ン タ ー ネ ッ ト ポ ー ト inport 経 由 で サ ー バ ー へ の 接 続 を 確 立 す る 。

接 続 に 成 功 し た ら 、 イ ン タ ー ネ ッ ト ド メ イ ン に 存 在 す る タ イ プ SOCK_STREAM の ソ ケ ッ ト が 呼 び 出 し も と に 返 さ れ る 。 こ の ソ ケ ッ ト の 相 手 側 は リ モ ー ト コ マ ン ド の stdin お よ び stdout に 接 続 さ れ る 。 fd2p が ゼ ロ で な い 場 合 は 、 制 御 プ ロ セ ス へ の 接 続 が も う 一 つ 用 意 さ れ 、 そ の フ ァ イ ル デ ィ ス ク リ プ タ ー が *fd2p に セ ッ ト さ れ る 。 制 御 プ ロ セ ス は リ モ ー ト コ マ ン ド か ら の 標 準 エ ラ ー 出 力 (unit 2) を こ の チ ャ ン ネ ル に 返 す 。 ま た 制 御 プ ロ セ ス は こ の 接 続 か ら 受 け 取 っ た バ イ ト デ ー タ を UNIX シ グ ナ ル の 番 号 と し て 扱 い 、 リ モ ー ト コ マ ン ド の プ ロ セ ス グ ル ー プ へ と シ グ ナ ル を 送 る 。 fd2p が ゼ ロ の 場 合 は 、 stderr (リ モ ー ト コ マ ン ド の unit 2) は stdout と 一 緒 に ま と め ら れ る 。 ま た こ の 場 合 は リ モ ー ト プ ロ セ ス へ 任 意 の シ グ ナ ル を 送 る こ と は で き な く な る 。 た だ し 帯 域 外 (out-of-band) デ ー タ を 用 い れ ば 、 リ モ ー ト プ ロ セ ス の 注 意 を 引 く こ と は で き る か も し れ な い 。

プ ロ ト コ ル の 詳 細 は rshd (8) に 記 述 さ れ て い る 。

rresvport()

The rresvport () function is used to obtain a socket with a privileged port bound to it. This socket is suitable for use by rcmd () and several other functions. Privileged ports are those in the range 0 to 1023. Only a privileged process (on Linux: a process that has the CAP_NET_BIND_SERVICE capability in the user namespace governing its network namespace). is allowed to bind to a privileged port. In the glibc implementation, this function restricts its search to the ports from 512 to 1023. The port argument is value-result: the value it supplies to the call is used as the starting point for a circular search of the port range; on (successful) return, it contains the port number that was bound to.

iruserok() と ruserok()

iruserok () と ruserok () 関 数 は 、 ま ず 以 下 の 引 数 を 取 る : リ モ ー ト ホ ス ト ( iruserok () は IP ア ド レ ス で 、 ruserok () は ホ ス ト 名 で 指 定 )、 2 つ の ユ ー ザ ー 名 、 ロ ー カ ル ユ ー ザ ー の 名 前 が ス ー パ ー ユ ー ザ ー の も の で あ る か ど う か を 示 す フ ラ グ 、 で あ る 。 も し ユ ー ザ ー が ス ー パ ー ユ ー ザ ー で は な い 場 合 は 、 こ れ ら の 関 数 は /etc/hosts.equiv フ ァ イ ル を チ ェ ッ ク す る 。 フ ァ イ ル が 見 つ か ら な か っ た り 、 内 容 の チ ェ ッ ク に 失 敗 し た 場 合 に は 、 ロ ー カ ル ユ ー ザ ー の ホ ー ム デ ィ レ ク ト リ に あ る .rhosts フ ァ イ ル を チ ェ ッ ク し て 、 サ ー ビ ス 要 求 が 許 可 さ れ て い る か ど う か 調 べ る 。

If this file does not exist, is not a regular file, is owned by anyone other than the user or the superuser, is writable by anyone other than the owner, or is hardlinked anywhere, the check automatically fails. Zero is returned if the machine name is listed in the hosts.equiv file, or the host and remote username are found in the .rhosts file; otherwise iruserok () and ruserok () return -1. If the local domain (as obtained from gethostname (2)) is the same as the remote domain, only the machine name need be specified.

リ モ ー ト ホ ス ト の IP ア ド レ ス が わ か っ て い る 場 合 は 、 ruserok () よ り も iruserok () を 用 い る 方 が 良 い だ ろ う 。 ruserok () は リ モ ー ト ホ ス ト の 所 属 す る ド メ イ ン の DNS サ ー バ ー が 信 頼 で き な く て も 使 用 で き る か ら で あ る 。

*_af() 版

上 記 で 述 べ た 関 数 は 全 て IPv4 ( AF_INET ) ソ ケ ッ ト で 動 作 す る 。 "_af" 版 で は 追 加 の 引 数 が あ り 、 こ の 引 数 で ソ ケ ッ ト ア ド レ ス フ ァ ミ リ ー を 指 定 で き る 。 こ れ ら の 関 数 で は 、 af 引 数 に は AF_INET AF_INET6 が 指 定 で き る 。 rcmd_af () で は 追 加 で AF_UNSPEC も 指 定 で き る 。

返 り 値

rcmd () 関 数 は 成 功 す る と 有 効 な ソ ケ ッ ト デ ィ ス ク リ プ タ ー を 返 す 。 失 敗 す る と -1 を 返 し 、 標 準 エ ラ ー 出 力 に 診 断 メ ッ セ ー ジ を 表 示 す る 。

rresvport () 関 数 は 、 成 功 す る と バ イ ン ド さ れ た 有 効 な ソ ケ ッ ト デ ィ ス ク リ プ タ ー を 返 す 。 失 敗 す る と -1 を 返 し 、 グ ロ ー バ ル 変 数 errno を エ ラ ー の 原 因 に 対 応 す る 値 に セ ッ ト す る 。 エ ラ ー コ ー ド EAGAIN は 、 こ の 関 数 に お い て は 「 す べ て の ネ ッ ト ワ ー ク ポ ー ト が 使 用 中 」 と い う 意 味 を 表 す 。

ruserok () と iruserok () の 返 り 値 に つ い て は 、 上 述 の 説 明 を 参 照 。

バ ー ジ ョ ン

関 数 iruserok_af (), rcmd_af (), rresvport_af (), ruserok_af () は glibc バ ー ジ ョ ン 2.2 以 降 で 提 供 さ れ て い る 。

属 性

こ の 節 で 使 用 さ れ て い る 用 語 の 説 明 は attributes (7) を 参 照 の こ と 。

Image grohtml-25671-1.png

準 拠

POSIX.1 に は な い 。 BSD 系 、 Solaris や 他 の 多 く の シ ス テ ム に 存 在 す る 。 こ れ ら の 関 数 は 4.2BSD で 登 場 し た 。 "_af" が 付 く バ ー ジ ョ ン は よ り 最 近 に 追 加 さ れ た も の で 、 あ ま り 多 く の シ ス テ ム に は 存 在 し な い 。

バ グ

iruserok () と iruserok_af () は glibc バ ー ジ ョ ン 2.12 以 降 の ヘ ッ ダ ー で の み 宣 言 さ れ て い る 。

関 連 項 目

rlogin (1), rsh (1), rexec (3), rexecd (8), rlogind (8), rshd (8)

こ の 文 書 に つ い て

こ の man ペ ー ジ は Linux man-pages プ ロ ジ ェ ク ト の リ リ ー ス 5.10 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は https://www.kernel.org/doc/man-pages/ に 書 か れ て い る 。