日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
RCMD(3) FreeBSD ライブラリ関数マニュアル RCMD(3) 名称 rcmd, rresvport, iruserok, ruserok, rcmd_af, rresvport_af, iruserok_sa -- リモートコマンドにストリームを返すためのルーチン ライブラリ 標準 C ライブラリ (libc, -lc) 書式 #include <unistd.h> int rcmd(char **ahost, int inport, const char *locuser, const char *remuser, const char *cmd, int *fd2p); int rresvport(int *port); int iruserok(u_long 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, int inport, const char *locuser, const char *remuser, const char *cmd, int *fd2p, int af); int rresvport_af(int *port, int af); int iruserok_sa(const void *addr, int addrlen, int superuser, const char *ruser, const char *luser); 解説 rcmd() 関数は、予約されたポート番号に基づいた認証スキームを使用してリモー トのマシンのコマンドを実行するために、スーパユーザによって使用されます。 rresvport() 関数は、特権を与えられたポート空間のアドレスでソケットへの記 述子を返します。ruserok() 関数は、rcmd() でサービスを要求していクライアン トを認証するために、サーバによって使用されます。すべての 3 つの関数は、同 じファイルに存在し、(いくつかある) rshd(8) サーバによって使用されます。 rcmd() 関数は、gethostbyname(3) を使用してホストの *ahost を検索し、ホス トが存在しないなら、-1 を返します。そうでなければ、*ahost は、ホストの標 準の名前に設定され、接続は、よく知られているインターネットポート inport にあるサーバと確立されます。 接続が成功するなら、タイプ SOCK_STREAM のインターネットドメインのソケット が、呼び出し側に返され、stdin と stdout としてリモートのコマンドに与えら れます。fd2p が 0 でないなら、制御プロセスへの補助チャネルが、設定され て、そのための記述子は、*fd2p に置かれます。制御プロセスは、このチャネル のコマンド (ユニット 2) から診断の出力を返し、また、コマンドのプロセスグ ループに転送されるように UNIX のシグナル番号としてこのチャネルのバイトを 受け付けます。fd2p が 0 であるなら、stderr (リモートのコマンドのユニット 2) は、stdout と同じように行われ、任意のシグナルをリモートのプロセスに送 信するための用意は行われませんが、帯域外のデータの使用することによってそ の注意を得ることができます。 プロトコルは、rshd(8) で詳しく説明されています。 rresvport() 関数は、特権を与えられたインターネットポートがあるアドレスに バインドされるソケットを得るために使用されます。このソケットは、rcmd() と いくつかの他の関数で使用に適しています。特権を与えられたインターネット ポートは、0 から 1023 までの範囲のものです。スーパユーザだけが、この種類 のアドレスをソケットとバインドすることが許可されます。 iruserok() と ruserok() 関数は、gethostbyname(3) ルーチンによって返される ようなリモートホストの IP アドレスまたは名前、2 つのユーザ名、とローカル ユーザの名前がスーパユーザの名前であるかどうかを示すフラグを取ります。そ して、ユーザがスーパユーザでないなら、/etc/hosts.equiv ファイルをチェック します。その検索が行われないか、または成功しないなら、ローカルユーザの ホームディレクトリの .rhosts は、サービスのための要求が許可されるかどうか 確かめるためにチェックされます。 このファイルが存在しない、通常のファイルではない、ユーザまたはスーパユー ザ以外の誰かによって所有されているか、または所有者以外の誰かによって書き 込み可能であるなら、チェックは、自動的に失敗します。マシン名が ``hosts.equiv'' ファイルにリストされている、または、ホストとリモートの ユーザ名が ``.rhosts'' ファイルに見つかるなら、0 が、返されます。そうでな ければ、iruserok() と ruserok() は、-1 を返します。(gethostname(3) から取 得されるような) ローカルドメインがリモートドメインと同じであるなら、マシ ン名のみが指定される必要があります。 iruserok() 関数は、セキュリティの理由のために強く推奨されます。それは、せ いぜいローカル DNS を信頼することを必要としますが、一方 ruserok() 関数 は、なりすましすることができる、全体の DNS を信頼することを必要とします。 ``_af'' または ``_sa'' 接尾辞がある関数、すなわち、rcmd_af(), rresvport_af() と iruserok_sa() は、それらが IPv6 と IPv4 ポートの両方を 処理する能力があることを除いて、接尾辞なしの対応した関数と同じように動作 します。 ``_af'' 接尾辞は、関数が、アドレスファミリ (下記参照) を指定するために使 用される追加の af 引数があることをを意味します。af 引数の拡張は、バイナリ のアドレス引数がない関数のために実装されています。代わりに、af 引数は、ど のアドレスファミリが求められるかを指定します。 ``_sa'' 接尾辞は、関数に一般適なソケットのアドレスと長さの引数があること を意味しています。ソケットのアドレスがプロトコル独立のデータ構造であるの で、求められるように IPv4 と IPv6 ソケットのアドレスを渡すことができま す。sa 引数の拡張は、プロトコルに依存するバイナリのアドレス引数を渡す関数 のために実装されています。引数は、一般適な方法で複数のアドレスファミリを サポートするために、より一般適なアドレス構造に置き換えられる必要がありま す。 ``_af'' 接尾辞も ``_sa'' 接尾辞のいずれでもない関数は、IPv6 と IPv4 の両 方を処理することができる ruserok() を除いて、IPv4 のみのために動作しま す。アドレスファミリを切り替えるため、af 引数は、AF_INET または AF_INET6 で満たされなければなりません。rcmd_af() について、PF_UNSPEC もまた許可さ れます。 環境変数 RSH rcmd() 関数を使用するとき、この変数は、rsh(1) の代わりに実行するプロ グラムとして使用されます。 診断 rcmd() 関数は、成功すれば、有効なソケット記述子を返します。それは、エラー で -1 を返し、標準エラーに診断のメッセージを印刷 (表示) します。 rresvport() 関数は、成功すれば、有効で、バインドされたソケット記述子を返 します。それは、失敗の理由にしたがって設定されたグローバル値 errno でエ ラーで -1 を返します。エラーコード EAGAIN は、``使用中のすべてのネット ワークポート'' を意味するようにオーバロードされます。 関連項目 rlogin(1), rsh(1), intro(2), rlogind(8), rshd(8) W. Stevens and M. Thomas, Advanced Socket API for IPv6, RFC2292. W. Stevens, M. Thomas, and E. Nordmark, Advanced Socket API for IPv6, RFC3542. 歴史 これらの機関数のほとんどは、4.2BSD で登場しました。rresvport_af() 関数 は、RFC2292 で登場し、Hydrangea IPv6 プロトコルスタックキットのために WAID プロジェクトによって実装された。rcmd_af() 関数は、draft-ietf-ipngwg rfc2292bis-01.txt で登場し、WIDE/KAME IPv6 プロトコルスタックキットで実装 されました。iruserok_sa() 関数は、IETF ipngwg メーリングリストの議論で登 場し、FreeBSD 4.0 で実装されました。 FreeBSD 11.2 March 3, 2000 FreeBSD 11.2