名前

rexecdリモート実行サーバ

書式

rexecd

説明

rexecdrexec(3) ルーチンのためのサーバである。 このサーバは、ユーザー名とパスワードによる認証に基づいた、 リモート実行機能を提供する。
rexecd は ``exec'' サービスの仕様で指示されたポートへのサービス要求を監視する。 services(5) を参照すること。 サービス要求を受信すると、以下のプロトコルが開始される。
  1. サーバはソケットから NUL 文字のバイト (‘\0’) を受信するまで文字を読み取る。 受信した文字は ASCII 文字からなる 10 進数の数字として解釈される。
  2. ステップ 1 で受信された番号が 0 でない場合、 その番号は stderr のために使われる 2 次ストリームのポート番号であると解釈される。 その後、第 2 の接続がクライアントマシン上の 指定されたポートとの間に生成される。
  3. NUL 文字で終端された最大 16 文字のユーザー名が、 最初のソケットから取得される。
  4. NUL 文字で終端され、暗号化されていない最大 16 文字のパスワードが、 最初のソケットから取得される。
  5. NUL 文字で終端されたシェルに渡されるコマンドが、 最初のソケットから取得される。 コマンドの長さは、システムの引き数リストの上限を越えない長さに制限される。
  6. その後、 rexecd はログイン時と同様のユーザー認証を行う。 認証が成功した場合、ユーザーのホームディレクトリに移動し、 そのユーザーに対してユーザーとグループの保護を行う。 これらのステップのどれかで失敗した場合、 接続を切断し、診断メッセージを返す。
  7. NUL 文字のバイトが最初のソケットに返され、 コマンドラインがユーザーの通常のログインシェルに渡される。 シェルは rexecd によって確立されたネットワーク接続を継承する。

返り値

以下のリストの一番最後のものを除き、全ての診断メッセージは、 他のネットワーク接続が閉じられた後に、 最初のソケットを経由して返される。 エラーは最初のバイトの値が 1 であることで示される (コマンド実行に先立つ全てのステップが正常に終了した場合、 上記のステップ 7 で値 0 が返される)。
username too long
ユーザー名が 16 文字を越えている。
password too long
パスワードが 16 文字を越えている。
command too long
渡されたコマンドラインが (システムで設定されている) 引き数リストのサイズを越えている。
Login incorrect.
パスワードファイルにそのユーザー名のエントリが存在しない。 あるいは、間違ったパスワードが送られた。
No remote directory.
ホームディレクトリへの chdir コマンドが失敗した。
Try again.
サーバーによる fork が失敗した。
<shellname>: ...
ユーザーのログインシェルを起動することができない。 このメッセージは stderr に関係づけられた接続を用いて返される。 このメッセージの先頭には、フラグになるバイトが付かない。

関連項目

rexec(3)

バグ

通信される全てのデータとパスワードについて、 暗号化を可能にする機能が用意されるべきである。

履歴

rexecd コマンドは 4.2BSD で登場した。

翻訳者謝辞

この man ページの翻訳にあたり、 FreeBSD jpman project <http://www.jp.freebsd.org/man-jp/> による翻訳を参考にさせていただいた。

Recommended readings

Pages related to in.rexecd you should read also: