RSH(1)

名称
rsh - リモートマシン上でコマンドを実行する

書式
rsh [-46Kdnx] [-t timeout] [-k realm] [-l username] host [command]

解説
rsh は host で指定したホスト上で、 command で指定したコマンドを実行します。

rsh は、標準入力をリモートコマンドに対してコピーします。また、リモートコマンドの 標準出力を、 rsh の標準出力に、リモートコマンドの標準エラー出力を、 rsh の標準エラー出力にコピーします。 SIGINT, SIGQUIT, SIGTERM の各シグナルに関しては、 リモートコマンドに対して通知されます。 rsh は、リモートコマンドが正常終了した場合には正常終了します。本コマンドは、 以下のオプションが使用可能です。

-4  IPv4 アドレスのみを使用します。

-6  IPv6 アドレスのみを使用します。

-K  Keroberos による全てのユーザ認証を行いません。

-d  rsh は setsockopt(2) を用いて、リモートホストとの通信に用いられる TCP ソケットのデバッグを有効にします。

-k realm
    rsh はリモートホストに対して krb_realmofhost(3) によって定義されるリモートホストの realm の代わりに、指定した realm を使用して、リモートホストに対してのアクセス許可を得ます。

-l username
    リモートの username を指定可能です。 デフォルトでは、ローカルユーザ名とリモートホスト上のユーザ名は同じです。 ユーザ認証には rlogin(1) と同様の仕組みにより Kerberos によるユーザ認証機構が使われます。

-n  rsh の入力を、特殊デバイス /dev/null にします( バグ の項を参照してください)。

-x  すべてのデータ交換に DES による暗号化を有効にします。これを用いると レスポンスが著しく悪くなるかも知れません。

-t timeout
    -t オプションは、(秒で表現される) timeout を指定します。この時間の間、 データが送られも受け取りもされない場合、 rsh は終了します。

command が指定されない場合には、ユーザは rlogin(1) を用いてリモートホストにログインします。

クォートされていないシェルのメタキャラクタについては、ローカルマシン上 で解釈され、クォートされているメタキャラクタはリモートホスト上で解釈 されます。例えば、

    rsh otherhost cat remotefile >> localfile

については、リモートマシン上のファイル remotefile を、ローカルマシン上のファイル localfile に追加します。一方

    rsh otherhost cat remotefile ">>" other_remotefile

については、リモートマシン上の remotefile を other_remotefile に追加します。

関連ファイル
/etc/hosts
/etc/auth.conf

関連項目
rlogin(1), setsockopt(2), kerberos(3), krb_realmofhost(3), krb_sendauth(3), rcmd(3), ruserok(3), auth.conf(5), hosts(5), hosts.equiv(5), rlogind(8), rshd(8)

歴史
rsh コマンドは 4.2BSD から登場しました。

バグ
csh(1) を用いて rsh を標準入力からのリダイレクトなしにバックグラウンドで実行する場合、 たとえリモートコマンドの入力がなくても(必ず)ブロックされるでしょう。 リダイレクトで rsh に入力を渡す必要がなければ、 -n オプションを用いてリモートコマンドの入力元を /dev/null に切り替えてください。

rsh を用いて、 rogue(6) や vi(1) のような会話的コマンドを実行することはできません。 代わりに rlogin(1) を使用してください。

SIGSTOP は、ローカルマシンの rsh プロセスを停止させるだけです。これはおそらく良くない動作です. しかし、これを直すことは、現時点では困難です。ここでその理由を説明す るにはあまりに複雑なので、理由については割愛します。