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 タイプのインターネットドメインのソケッ トが呼び出し側に戻され、 stdin と stdout としてリモートコマンドに指定され ます。 fd2p が 0 以外である場合は、制御プロセスの補助チャンネルが設定さ れ、その記述子が *fd2p に配置されます。制御プロセスは、このチャンネルのコ マンド (ユニット 2) から診断出力を戻し、このチャンネルのバイトを UNIX シ グナル番号として受け入れ、コマンドのプロセスグループに転送します。戻され る診断情報には、認証が確認されてから第 2 接続が設定されるので、リモート認 証エラーが含まれません。 fd2p が 0 である場合は、 stderr (リモートコマン ドのユニット 2) が stdout と同じように作成されます。バンド外データを使用 して注目を集められますが、リモートプロセスに任意のシグナルを送信する準備 は行なわれません。 |
関連項目
歴史
rexec() 関数は 4.2BSD に追加されました。 |
バグ
rexec() 関数は、暗号化されていないパスワードをネットワークで送信します。 基礎となるサービスは、セキュリティの大きな問題があるとみなされているた め、多くのサイトでは有効になっていません。 rexecd(8) を参照してください。 4.2 Berkeley Distribution June 4, 1993 4.2 Berkeley Distribution |