スポンサーリンク

REXECD(8) FreeBSD システム管理者マニュアル REXECD(8)

名称

rexecd − リモート実行サーバ

書式

rexecd [−i]

解説

rexecd ユーティリティは、 rexec(3) ルーチンのためのサーバです。本サーバ は、ユーザ名とパスワードに基づいたユーザ認証による、リモートプロセス実行 の環境を提供します。

rexecd ユーティリティは、 services(5) にて ‘‘exec’’ サービスが定義された ポートを監視します。サービス要求を受信した際に、以下のプロトコルが実行さ れます。

       1. サーバは、ソケットから NUL (‘\0’) を受信するまで文字を読みとります。受信した文字は ASCII 文字からなる 10 進数の数字として評価されます。

2. ステップ 1 で受信した番号が 0 でない場合、その番号は stderr のために 用いられるストリームのためのポート番号として用いられます。その後、第 二の接続がクライアントホスト上の指定されたポートとの間に生成されま す。

3. NUL で終了する最大 16 文字のユーザ名が最初のソケットより取得されま す。

4. NUL で終了する、暗号化が施されていない最大 16 文字のパスワードが最初 の socket より取得されます。

5. NUL で終了する、シェルに渡されるコマンドが最初の socket より取得され ます。コマンドの長さは、システムの引数リストの制限を越えない長さに制 限されます。

6. rexecd ユーティリティは、次に、ログイン時と同様にユーザの認証を行 い、ユーザ認証が成功した場合、カレントディレクトリを当該ユーザのホー ムディレクトリに変更し、ユーザとグループの保護を行ないます。仮にこれ らの段階が失敗した場合、コネクションを切断し、診断メッセージを返しま す。

7. NUL 文字が最初のソケットに返却され、コマンドラインは当該ユーザの通常 のログインシェルに渡されます。シェルは rexecd によって確立されたネッ トワークコネクションを継承します。

警告

rexecd ユーティリティは root のログインを許可しません。ただし −i オプショ ンがコマンド行 (典型的には /etc/inetd.conf) で指定された場合は除きます。 rexecd はまた /etc/ftpusers にリストされたユーザでのアクセス、パスワード の無いユーザのアクセスを許可しません。これらはすべて重大なセキュリティ ホールでした。 rexec/rexecd のコンセプトは、メジャーなセキュリティホール と、それをさせないための例です。 rexecd ユーティリティは /etc/inetd.conf ではデフォルトで無効になっています。

診断

以下のリストの最後のものを除き、全ての診断メッセージは、他のネットワーク コネクションが切断された後に、最初の socket を経由して返却されます。エ ラーは、最初のバイトが値 1 であることで示されます (コマンドの実行に先立つ 全てのステップが正常に終了した場合、上記のステップ 7 で、値 0 が返されま す)。

       username too long

ユーザ名が 16 文字を越えています。

password too long
パスワードが 16 文字を越えています。

command too long
コマンドラインの長さが (設定されている) システムの引数の長さ制限 を越えています。

Login incorrect.
パスワードファイルのエントリに当該ユーザ名がありません。

Password incorrect.
パスワードが不正です。

No remote directory.
ホームディレクトリへの chdir(1) コマンドが失敗しました。

Try again.
サーバによる fork(2) が失敗しました。

<shellname>: ...
ユーザのログインシェルが起動できませんでした。このメッセージは stderr のために確立されたコネクションを用いて送信されます。そし て、先頭にフラグバイトがつくことはありません。

関連項目

rexec(3)

バグ

すべてのデータとパスワードを交換する場合に、それらの暗号化を行なう機構が 用意されるべきでしょう。

歴史

rexecd ユーティリティは 4.2BSD から登場しました。

FreeBSD 10.0 September 23, 1994 FreeBSD 10.0

スポンサーリンク