rexecd
ユーティリティは、
rexec(3)
ルーチンのためのサーバです。
本サーバは、ユーザ名とパスワードに基づいたユーザ認証による、
リモートプロセス実行の環境を提供します。
rexecd
ユーティリティは、
services(5)
にて ``exec'' サービスが定義されたポートを
監視します。サービス要求を受信した際に、以下のプロトコルが
実行されます。
- サーバは、ソケットから NUL
(‘\0’)
を受信するまで文字を読みとります。
受信した文字は
ASCII
文字からなる 10 進数の数字として評価されます。
- ステップ 1 で受信した番号が 0 でない場合、その番号は
stderr
のために用いられる
ストリームのためのポート番号として用いられます。
その後、
第二の接続がクライアントホスト上の指定されたポートとの間に生成されます。
- NUL で終了する最大 16 文字のユーザ名が最初のソケットより取得されます。
- NUL で終了する、暗号化が施されていない最大 16 文字のパス
ワードが最初の socket より取得されます。
- NUL で終了する、シェルに渡されるコマンドが最初の socket より取得
されます。
コマンドの長さは、システムの引数リストの制限を越えない長さに
制限されます。
- rexecd
ユーティリティは、次に、ログイン時と同様にユーザの認証を行い、
ユーザ認証が成功した場合、
カレントディレクトリを当該ユーザのホームディレクトリに変更し、
ユーザとグループの保護を行ないます。仮にこれらの段階が失敗した場合、
コネクションを切断し、診断メッセージを返します。
- NUL 文字が最初のソケットに返却され、コマンドラインは当該ユーザの
通常のログインシェルに渡されます。
シェルは
rexecd
によって確立されたネットワークコネクションを継承します。