.\" Copyright (c) 1983, 1991, 1993
.\" The Regents of the University of California. All rights reserved.
.\"
+.\" %%%LICENSE_START(BSD_4_CLAUSE_UCB)
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
+.\" %%%LICENSE_END
.\"
.\" @(#)rcmd.3 8.1 (Berkeley) 6/4/93
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
-.TH RCMD 3 2012\-03\-29 Linux "Linux Programmer's Manual"
+.TH RCMD 3 2012\-04\-23 Linux "Linux Programmer's Manual"
.SH 名前
-rcmd, rresvport, iruserok, ruserok \- リモートコマンドにストリームを返す関数群
+rcmd, rresvport, iruserok, ruserok, rcmd_af, rresvport_af, iruserok_af,
+ruserok_af \- リモートコマンドにストリームを返す関数群
.SH 書式
.nf
\fB#include <netdb.h> \ \ \fP/* Or <unistd.h> on some systems */
.sp
\fBint ruserok(const char *\fP\fIrhost\fP\fB, int \fP\fIsuperuser\fP\fB, \fP
\fB const char *\fP\fIruser\fP\fB, const char *\fP\fIluser\fP\fB);\fP
+.sp
+\fBint rcmd_af(char **\fP\fIahost\fP\fB, int \fP\fIinport\fP\fB, const char *\fP\fIlocuser\fP\fB, \fP
+\fB const char *\fP\fIremuser\fP\fB, const char *\fP\fIcmd\fP\fB, int *\fP\fIfd2p\fP\fB,\fP
+\fB sa_family_t \fP\fIaf\fP\fB);\fP
+.sp
+\fBint rresvport_af(int *\fP\fIport\fP\fB, sa_family_t \fP\fIaf\fP\fB);\fP
+.sp
+\fBint iruserok_af(uint32_t \fP\fIraddr\fP\fB, int \fP\fIsuperuser\fP\fB, \fP
+\fB const char *\fP\fIruser\fP\fB, const char *\fP\fIluser\fP\fB, sa_family_t \fP\fIaf\fP\fB);\fP
+.sp
+\fBint ruserok_af(const char *\fP\fIrhost\fP\fB, int \fP\fIsuperuser\fP\fB, \fP
+\fB const char *\fP\fIruser\fP\fB, const char *\fP\fIluser\fP\fB, sa_family_t \fP\fIaf\fP\fB);\fP
.fi
.sp
.in -4n
glibc 向けの機能検査マクロの要件 (\fBfeature_test_macros\fP(7) 参照):
.in
.sp
-\fBrcmd\fP(), \fBrresvport\fP(), \fBruserok\fP(): _BSD_SOURCE
+\fBrcmd\fP(), \fBrcmd_af\fP(), \fBrresvport\fP(), \fBrresvport_af\fP(),
+\fBiruserok\fP(), \fBiruserok_af\fP(), \fBruserok\fP(), \fBruserok_af\fP():
+_BSD_SOURCE
.SH 説明
-\fBrcmd\fP() 関数は、スーパーユーザーがリモートマシンでコマンドを実行するために 用いられる。このとき特権ポート番号をもとにした認証スキームが
-用いられる。 \fBrresvport\fP() 関数は、特権ポート空間のアドレスを持つソケットの ディスクリプターを返す。 \fBiruserok\fP()
-関数と \fBruserok\fP() 関数は、 \fBrcmd\fP() でサービス要求を行ったクライアントの認証を行うために サーバーが用いる関数である。
-以上の 4 つの関数は、すべて同じファイルに記述されており、 \fBrshd\fP(8) サーバーによって (他の関数とともに) 利用される。
+\fBrcmd\fP() 関数は、スーパーユーザーがリモートマシンでコマンドを実行する
+ために 用いられる。このとき特権ポート番号をもとにした認証スキームが 用
+いられる。 \fBrresvport\fP() 関数は、特権ポート空間のアドレスを持つソケッ
+トの ディスクリプターを返す。 \fBiruserok\fP() 関数と \fBruserok\fP() 関数は、
+\fBrcmd\fP() でサービス要求を行ったクライアントの認証を行うために サーバー
+が用いる関数である。 以上の 4 つの関数は、 \fBrshd\fP(8) サーバーによって
+(他の関数とともに) 利用される。
+.SS rcmd()
.PP
\fBrcmd\fP() 関数は \fBgethostbyname\fP(3) を用いて \fI*ahost\fP の参照を行う。ホストが存在しない場合は \-1
を返す。 見つかった場合は \fI*ahost\fP にホストの標準名 (standard name) をセットして、 予約されているインターネットポート
リモートプロセスの注意を引くことはできるかもしれない。
.PP
プロトコルの詳細は \fBrshd\fP(8) に記述されている。
+.SS rresvport()
.PP
-\fBrresvport\fP() 関数は特権アドレスにバインドされたソケットを取得するために用いられる。 このソケットは \fBrcmd\fP()
-などの関数での利用に適している。インターネットポートの特権ポートは、 0 から 1023 の範囲である。スーパーユーザーだけがこれらのアドレスを
-ソケットにバインドすることができる。
+.\"
+\fBrresvport\fP() 関数は特権ポートにバインドされたソケットを取得するために
+用いられる。 このソケットは \fBrcmd\fP() などの関数での利用に適している。
+インターネットポートの特権ポートは、 0 から 1023 の範囲である。特権プロ
+セス (\fBCAP_NET_BIND_SERVICE\fP) だけが特権ポートをバインドすることができ
+る。 glibc の実装では、この関数は特権ポートの検索範囲を 512 から 1023
+までの範囲に制限している。 \fIport\fP 引き数は入出力両用で使用される。呼び
+出し時にこの引き数で渡された値は特権ポートを巡回検索する際の開始ポイン
+トとして使用され、(成功で) 返る際にはこの引き数にバインドされたポート
+番号が格納される。
+.SS "iruserok() と ruserok()"
.PP
\fBiruserok\fP() と \fBruserok\fP() 関数は、まず以下の引数を取る: リモートホスト (\fBiruserok\fP() は IP
アドレスで、 \fBruserok\fP() はホスト名で指定)、 2 つのユーザー名、ローカルユーザーの名前が
.PP
リモートホストの IP アドレスがわかっている場合は、 \fBruserok\fP() よりも \fBiruserok\fP()\fBを用いる方が良いだろう。\fP
\fBruserok\fP() はリモートホストの所属するドメインの DNS サーバーが信頼できなくても 使用できるからである。
+.SS "*_af() 版"
+上記で述べた関数は全て IPv4 (\fBAF_INET\fP) ソケットで動作する。
+"_af" 版では追加の引き数があり、この引き数でソケットアドレス
+ファミリーを指定できる。これらの関数では、 \fIaf\fP 引き数には
+\fBAF_INET\fP か \fBAF_INET6\fP が指定できる。
+\fBrcmd_af\fP() では追加で \fBAF_UNSPEC\fP も指定できる。
.SH 返り値
\fBrcmd\fP() 関数は成功すると有効なソケットディスクリプターを返す。 失敗すると \-1 を返し、標準エラー出力に診断メッセージを 表示する。
.PP
\fBrresvport\fP() 関数は、成功するとバインドされた有効なソケットディスクリプターを返す。 失敗すると \-1 を返し、グローバル変数
\fIerrno\fP をエラーの原因に対応する値にセットする。 エラーコード \fBEAGAIN\fP
は、この関数においては「すべてのネットワークポートが使用中」 という意味を表す。
+
+\fBruserok\fP() と \fBiruserok\fP() の返り値については、上述の説明を参照。
+.SH バージョン
+関数 \fBiruserok_af\fP(), \fBrcmd_af\fP(), \fBrresvport_af\fP(),
+\fBruserok_af\fP() は glibc バージョン 2.2 以降で提供されている。
.SH 準拠
-POSIX.1\-2001 にはない。 BSD 系、Solaris や他の多くのシステムに存在する。 これらの関数は 4.2BSD で登場した。
+POSIX.1\-2001 にはない。 BSD 系、Solaris や他の多くのシステムに存在する。
+これらの関数は 4.2BSD で登場した。 "_af" が付くバージョンはより最近に
+追加されたもので、あまり多くのシステムには存在しない。
.SH バグ
.\" Bug filed 25 Nov 2007:
.\" http://sources.redhat.com/bugzilla/show_bug.cgi?id=5399
-\fBiruserok\fP() は glibc バージョン 2.12 以降のヘッダでのみ宣言されている。
+\fBiruserok\fP() と \fBiruserok_af\fP() は glibc バージョン 2.12 以降のヘッダ
+でのみ宣言されている。
.SH 関連項目
\fBrlogin\fP(1), \fBrsh\fP(1), \fBintro\fP(2), \fBrexec\fP(3), \fBrexecd\fP(8),
\fBrlogind\fP(8), \fBrshd\fP(8)
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.50 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。