Provided by: manpages-ja-dev_0.5.0.0.20131015+dfsg-2_all bug

名前

       rexec, rexec_af - リモートコマンドへのストリームを返す

書式

       #define _BSD_SOURCE             /* feature_test_macros(7) 参照 */
       #include <netdb.h>

       int rexec(char **ahost, int inport, char *user,
                 char *passwd, char *cmd, int *fd2p);

       int rexec_af(char **ahost, int inport, char *user,
                    char *passwd, char *cmd, int *fd2p,
                    sa_family_t af);

説明

       このインタフェースは rcmd(3)  によって置き換えられた。

       rexec()   関数は  gethostbyname(3)  を使ってホスト *ahost を探す。ホストが存在しない場合は
       -1 を返し、それ以外の場合には *ahost にそのホストの標準的な名前を設定する。 ユーザ名とパス
       ワードの両方が指定された場合には、これらは  接続先のホストへの認証に利用される。そうでない
       場合には、    適切な情報を入手するために、環境変数と、そのユーザの    ホームディレクトリの
       .netrc ファイルが検索される。情報が見つからなかった時には、 ユーザに対して情報を入力するプ
       ロンプトが表示される。

       ポート  inport  には、接続に使用する  DARPA  Internet  の  well-known   ポートを指定する。
       getservbyname("exec",   "tcp")  を呼び出すと構造体へのポインタが返され  (getservent(3)  参
       照)、この構造体には必要なポートが入っている。   接続に使用されるプロトコルについての詳細は
       rexecd(8)  に書かれている (訳注: 現在のところ存在しない)。

       接続に成功すると、インターネットドメインの  SOCK_STREAM 型のソケットが返され、そのソケット
       はリモートコマンドの 標準入力および標準出力となる。 fd2p が 0 以外の場合、制御プロセスへの
       補助チャンネルがセットアップされ、  補助チャンネルのディスクリプタが *fd2p に書かれる。 制
       御プロセスはコマンドからの診断メッセージ出力 (ファイルディスクリプタ 2) をこのチャンネルで
       返す。また、このチャンネル経由で UNIX のシグナル番号を示すバイトを受信する。受信したシグナ
       ルは コマンドが属すプロセスグループに転送される。 診断情報にはリモートの認証失敗は含まれな
       い。なぜなら、認証の確認が行われた    後で補助チャンネルの接続はセットアップされるからであ
       る。 fd2p が 0 の場合、標準エラー (リモートコマンドのファイルディスクリプタ 2) は 標準出力
       と同様に扱われ、リモートプロセスに任意のシグナルを送るための  手段は提供されない。但し、リ
       モートプロセスに対してトリガをかけるために、 帯域外データ (out-of-band data)  を使うことは
       できる。

   rexec_af()
       rexec()  関数は IPv4 (AF_INET) 上で動作する。 これに対して、 rexec_af() 関数は追加の引き数
       af  があり、  この引き数で呼び出し側がプロトコルを選択できる。   この引き数には   AF_INET,
       AF_INET6,  AF_UNSPEC  を指定できる  (AF_UNSPEC  は実装側がプロトコルを選択することを意味す
       る)。

バージョン

       rexec_af() 関数は glibc バージョン 2.9 で追加された。

属性

   マルチスレッディング (pthreads(7) 参照)
       関数 rexec() と rexec_af() はスレッドセーフではない。

準拠

       これらの関数は  POSIX.1-2001  にはない。rexec()   関数は   4.2BSD   で始めて   登場し、BSD
       系、Solaris  や他の多くのシステムに存在する。rexec_af() 関数はもっと新しく、それほど広く使
       われているわけではない。

バグ

       rexec()  関数はネットワークに暗号化されていないパスワードを送信する。

       基礎的なサービスにおいては大きなセキュリティホールと考えられるため、  多くのサイトで無効に
       なっている。詳細は rexecd(8) を参照。

関連項目

       rcmd(3), rexecd(8)

この文書について

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