スポンサーリンク

REXEC(3) FreeBSD ライブラリ関数マニュアル REXEC(3)

名称

rexec − リモートコマンドにストリームを戻す

ライブラリ

互換ライブラリ (libcompat, −lcompat)

書式

int

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

解説

このインタフェースは、 krcmd(3) に置き換えられました。

rexec() 関数は gethostbyname(3) を使用してホスト *ahost を検索し、ホスト が存在しない場合は −1 を戻します。ホストが存在する場合は、ホストの標準名 に *ahost を設定します。ユーザ名とパスワードの両方が指定されている場合 は、この情報を使用して外部ホストに認証します。ユーザ名とパスワードが指定 されていな場合は、ホームディレクトリの環境とユーザの .netrc ファイルを検 索して適切な情報を特定します。このすべてがエラーとなった場合は、情報を入 力するようにユーザに要求します。

ポート inport は、接続に使用する、既知の DARPA インターネットポートを指定 します。 getservbyname("exec", "tcp") を呼び出すと ( getservent(3) 参 照)、必要なポートを含む構造体のポインタが戻されます。接続のプロトコルにつ いては、 rexecd(8) を参照してください。

問題なく接続されると、 SOCK_STREAM タイプのインターネットドメインのソケッ トが呼び出し側に戻され、 stdinstdout としてリモートコマンドに指定され ます。 fd2p が 0 以外である場合は、制御プロセスの補助チャンネルが設定さ れ、その記述子が *fd2p に配置されます。制御プロセスは、このチャンネルのコ マンド (ユニット 2) から診断出力を戻し、このチャンネルのバイトを UNIX シ グナル番号として受け入れ、コマンドのプロセスグループに転送します。戻され る診断情報には、認証が確認されてから第 2 接続が設定されるので、リモート認 証エラーが含まれません。 fd2p が 0 である場合は、 stderr (リモートコマン ドのユニット 2) が stdout と同じように作成されます。バンド外データを使用 して注目を集められますが、リモートプロセスに任意のシグナルを送信する準備 は行なわれません。

関連項目

rcmd(3), rexecd(8)

歴史

rexec() 関数は 4.2BSD に追加されました。

バグ

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

基礎となるサービスは、セキュリティの大きな問題があるとみなされているた め、多くのサイトでは有効になっていません。 rexecd(8) を参照してください。

4.2 Berkeley Distribution June 4, 1993 4.2 Berkeley Distribution

スポンサーリンク