ユーザーコマンド rsh(1)
【名前】
rsh, remsh, remote_shell - リモートシェル
【形式】
rsh [-n] [-a] [-PN | -PO] [-x] [-f | -F] [-l username] [-k
realm] hostname command
rsh hostname [-n] [-a] [-PN | -PO] [-x] [-f | -F] [-
l username] [-k realm] command
remsh [-n] [-a] [-PN | -PO] [-x] [-f | -F] [-l username]
[-k realm] hostname command
remsh hostname [-n] [-a] [-PN | -PO] [-x] [-f | -F] [-
l username] [-k realm] command
hostname [-n] [-a] [-PN | -PO] [-x] [-f | -F] [-
l username] [-k realm] command
【機能説明】
rsh は、hostname が示すホストに接続し、command が示すコマ ン
ドを実行します。rsh は自身の標準入力のデータをリモートコマン
ドにコピーし、リモートコマンドの標準出力を自身の標準出力にコ
ピーし、さらに、リモートコマンドの標準エラー出力を自身の標準
エラー出力にコピーします。割り込み、停止、および終了シグナル
は、 リモートコマンドに伝えられます。通常 rsh は、リモートコ
マンドが終了したときに終了します。
ユーザーは、Kerberos V5 認証を使用して、rsh セッションを安全
にするかどうかを選択できます。また、転送されるデータも暗号化
できます。rsh セッションで Kerberos 認証を使用するには、任意
の Kerberos 固有オプション (-a、-PN または -PO、-x、-f また
は -F、および -k realm) を使用します。これらのオプションのう
ち、-x、-PN または -PO、および -f または -F は、krb5.conf(4)
の [appdefaults] セクションにも指定できます。これら の オ プ
ションの使用法と期待される動作については、以下のオプションセ
クションを参照してください。Kerberos 認証を使用する場合、 ア
カ ウントの認証は、krb5_auth_rules(5) の規則によって制御され
ます。Kerberos 認証が失敗した場合、-PO オプションをコマン ド
行 に明示的に指定するか、krb5.conf(4) 経由で指定している場合
にのみ、rhosts を使用する通常の rsh へのフォールバックが発生
します。-PN または -PO、-x、-f または -F、および -k realm オ
プションは、-A オプションの上位集合であることに注意してく だ
さい。
command を省略すると、rsh は単一のコマンドを実行する代 わ り
に、rlogin(1) を使ってそのユーザーをリモートホストにログイン
します。
rsh は command の終了ステータスを返しません。
シェルのメタキャラクタのうち、引用符で囲まれていないも の は
ローカルマシン上で解釈されます。引用符で囲まれているものは、
リモートマシン上で解釈されます。「使用例」の項にある例を参照
してください。
特定のユーザーのログインシェルの初期化ファイル (.cshrc など)
でロケールが設定されていない場合、rsh はコマンドを実行すると
きに、常に C ロケールを使用します。リモートマシンのデフォ ル
トのロケールは使用しません。
このコマンド自身は暗号化されずにリモートシステムに送信されま
す。 それ以降の転送はすべて暗号化されます。-x を参照してくだ
さい。
【オプション】
以下のオプションを指定できます。
-a このオプションは、Kerberos 認証を明示的に 有
効にし、アクセス制御において .k5login ファイ
ルを信用します。サーバー側で の in.rshd(1M)
に よる認証チェックが成功し、.k5login ファイ
ルがアクセス権を許可する場合、ユーザーは rsh
コマンドを実行することが許可されます。
-f ローカルの証明書 (Kerberos チケット 許 可 チ
ケット) のコピーをリモートシステムに転送しま
す。この証明書は再転送可能ではありません。こ
のチケット許可チケットを転送する必要があるの
は、リモートホスト上で Kerberos 認証を使用し
ているほかのネットワークサービスで自分自身を
認証する必要がある場合です。たとえば、リモー
ト ホ スト上にある自分のホームディレクトリが
Kerberos V5 経由で NFS マウントされている 場
合などです。この場合、ローカルの証明書を転送
しなければ、リモートホスト上にある自分のホー
ムディレクトリにアクセスできません。このオプ
ションは、-F オプションとは相互排他的です。
-F ローカルの証明書 (Kerberos チケット 許 可 チ
ケット) のコピーをリモートシステムに転送しま
す。この証明書は再転送可能です。-F オプ ショ
ン は、-f オプションが提供する機能の上位集合
を提供します。たとえば、-f オプショ ン の 場
合、 リ モー ト ホ ス ト に 接 続 した後に、
/usr/bin/ftp、 /usr/bin/telnet、
/usr/bin/rlogin、 ま たは /usr/bin/rsh を -f
オプションまたは -F オプションで呼び出そうと
しても失敗します。つまり、単一のネットワーク
署名をほかのシステムにプッシュできません。こ
の オプションは、-f オプションとは相互排他的
です。
-k realm rsh は、krb5.conf(4) で定義されているリ モー
ト ホストの領域ではなく、指定した realm 内の
リモートホスト用のチケットを取得します。
-l username リモートユーザー名として、ユーザー自身のロー
カルユーザー名の代わりに username を使用しま
す。このオプションを省略すると、リモートユー
ザー名はローカルユーザー名と同じになります。
-n rsh の入力先を /dev/null に変更します。こ の
オプションは、rsh とそれを呼び出したシェルと
の間での、予期できない干渉を防ぐ上で便 利 で
す。たとえば、rsh を実行していて、さらにバッ
クグラウンドで rsh を呼び出した場合、その 入
力先を端末以外に変更しないと、リモートコマン
ドの読み取りがない場合でも処理が妨げられてし
ま います。-n オプションを指定すれば、このよ
うな事態は避けられます。
-PO Kerberos の「rcmd」プロトコルの新 し い バー
-PN ジョン (-PN) または古いバージョン (-PO) を明
示的に要求します。新しいプロトコルは、古いプ
ロトコルで蔓延している多くのセキュリティの問
題を回避し、より安全であると考えられますが、
古い (MIT/SEAM) サービスとは相互運用できませ
ん。-PO オプションで古いプロトコルを明示的に
指 定するか、krb5.conf(4) 経由で指定していな
い限り、デフォルトでは、新しいプロトコルが使
用されます。古い「rcmd」プロトコルを使用して
いるときに Kerberos 認証が失敗した場合、Ker-
beros 認 証 を 使用しない通常の rlogin への
フォールバックが発生します。これは、新しい、
より安全な「rcmd」プロトコルを使用している場
合には当てはまりません。
-x ネットワークセッションのトラフィックを暗号化
します。「機能説明」の節を参照してください。
リモートシェルの種類 ( sh や rsh など) は、リモートシステ ム
上 の /etc/passwd ファイル中のユーザーのエントリにより決めら
れます。
【オペランド】
以下のオペランドを指定できます。
command 指定された hostname で実行するコマンド
【使用法】
ファイルが 2 ギガバイト (2**31 バイト) 以上ある場合の rsh と
remsh の動作については、largefile(5) を参照してください。
rsh および remsh コマンドは、IPv6 に対応しています。 ip6(7P)
の マニュアルページを参照してください。現在のところ、IPv6 は
Kerberos V5 認証ではサポートされません。
ホスト名は hosts データべース (/etc/hosts ファイルに含めるこ
と ができる)、インターネットドメイン名データべース、あるいは
その両方に書かれています。各ホストには 1 つの正式名 (デー タ
べー ス エントリの最初の名前) があり、さらにいくつかのニック
ネームが存在することもあります。hostname 引数には、正式な ホ
スト名とニックネームのいずれかを指定します。
rsh を実行するファイル名が rsh でなければ、rsh はそのファ イ
ル名を hostname 引数として使用します。これによりユーザーは、
ホスト名で rsh に対するシンボリックリンクを生成でき、実行 時
にそのホスト上のリモートシェルを呼び出せます。ディレクトリを
作成し、それを共通に使われるホスト名でシンボリックリンクにつ
なぎ、さらにそのディレクトリをユーザー自身のシェルの検索パス
に含めることにより、シェルに hostname を入力するだけ で rsh
を実行することができます。
rsh を remsh で呼び出した場合、rsh は /usr/bin/remsh の存 在
を 確 認 します。このファイルが存在する場合、rsh は remsh を
rsh の別名として処理します。/usr/bin/remsh が存在し な い 場
合、rsh は remsh をホスト名として処理します。
Kerberos 認証を使用する rsh セッションの場合、各ユーザーは自
分のホームディレクトリの .k5login ファイルに、専用の認証リス
トを持つことができます。このファイ ル の 各 行 に は、 形 式
principal/instance@realm の Kerberos 主体名が入っている必要
があります。~/.k5login ファイルが存在する場合、起点ユー ザー
が ~/.k5login ファイルに指定された主体の 1 人であると認証さ
れた場合にのみ、起点ユーザーのアカウントにアクセス権が付与さ
れ ます。~/.k5login ファイルが存在しない場合、authenticated-
principal-name -> local-user-name マッピング規則を使用して、
起点ユーザーの認証された主体名をローカルアカウント名にマッピ
ングできる場合にのみ、起点ユーザーのアカウントにアクセス権が
付 与されます。.k5login ファイル (アクセス制御用) が処理され
るのは、Kerberos 認証が行われるときだけです。
安全でない rsh セッションの場合、各リ モー ト マ シ ン に は
/etc/hosts.equiv と い う名のファイルが存在することがありま
す。このファイルには、そのマシンとユーザー名を共有するホスト
名の一覧が記録されています。ローカルマシン上とリモートマシン
上でのユーザー名が同一のユーザー は、 リ モー ト マ シ ン の
/etc/hosts.equiv ファイルにリストされているマシンから rsh を
実行することができます。個々のユーザーは、このような同等名リ
ス トを個人用の .rhosts ファイルとして、自身のホームディレク
トリに作成することができます。このファイル中の各行には 2 つ
の 名前、hostname と username が含まれ、両者は空白で区切られ
ます。username で示すユーザーが hostname で示すホストにロ グ
イ ン し ていれば、そのユーザーは rsh を使って、リモートユー
ザーとしてリモートマシンにアクセスできます。ローカルホスト名
が リ モートマシン上の /etc/hosts.equiv ファイル中に見つから
ず、ローカルのユーザー名とホスト名が リ モー ト ユー ザー の
.rhosts ファ イル中に見つからない場合、アクセスは拒否されま
す。/etc/hosts.equiv または .rhosts ファイルに記録されている
ホスト名は、hosts データべースに登録されている正式なホスト名
である必要があります。つまりこの両ファイル中には、ニックネー
ムは指定できません。
リモートマシン上でアクセスが拒否されたときは、command 引数が
省略されていない限り、rsh はパスワードの入力を要求するプロン
プトを出力しません。
【使用例】
例 1: rsh でファイルを追加する
次のコマンドは、リモートのマシン lizard 上にあ る ファ イ ル
lizard.file を、 ロー カルのマシン example 上にあるファイル
example.file に追加します。
example% rsh lizard cat lizard.file >> example.file
次のコマンドは、リモートのマシン lizard 上にあ る ファ イ ル
lizard.file を、 同 じ マ シ ン lizard 上 に あるファイル
lizard.file2 に追加します。
example% rsh lizard cat lizard.file ">>" lizard.file2
【終了ステータス】
以下の終了ステータスが返されます。
0 正常終了
1 エラーが発生した
【ファイル】
/etc/hosts インターネットホストテーブル
/etc/hosts.equiv 信頼性のあるリモートホストとユーザー
/etc/passwd システムパスワードファイル
$HOME/.k5login アクセスを許可する Kerberos 主体を含
むファイル
/etc/krb5/krb5.conf Kerberos 構成ファイル
【属性】
次の属性については、attributes(5) のマニュアルページを参照し
てください。
____________________________________________________________
| 属性タイプ | 属性値 |
|_____________________________|_____________________________|
| 使用条件 | SUNWcsu |
|_____________________________|_____________________________|
| CSI | 対応済み |
|_____________________________|_____________________________|
【関連項目】
on(1), rlogin(1), telnet(1), vi(1), in.rshd(1M), hosts(4),
hosts.equiv(4), ipnodes(4), krb5.conf(4), attributes(5),
krb5_auth_rules(5), largefile(5), ip6(7P)
【注意事項】
hosts.equiv に登録されているシステムのセキュリティは、少なく
ともローカルシステムのセキュリティと同レベルである必要があり
ます。セキュリティレベルの低いシステムが hosts.equiv 中に 1
つでも存在していると、システム全体のセキュリティが損なわれる
可能性があります。
vi(1) のような対話型コマンドは実行できません。対話型コマンド
は rlogin を使って実行してください。
停止シグナルは、ローカルの rsh プロセスだけを停止させま す。
これはバグだという議論があるかもしれませんが、現在のところ修
正が大変困難です。その理由は複雑なので、ここでは説明を省きま
す。
以下を実行すると、シェルの状態がおかしくなります。
example% rsh somehost dd if=/dev/nrmt0 bs=20b | tar xvpBf -
つまり rsh の前に tar が終了してしまい、そのあとで rsh が
「壊れたパイプ」にデータを書き出そうとします。そのため正常に
終了するのではなく、標準入力をアクセスしようとしてシェルと競
合してしまいます。
-n オプションを指定して rsh を実行すれば、このような事態 を
防ぐことができます。
example% tar cf - . | rsh sundial dd of=/dev/rmt0 obs=20b
この場合には、前述のような現象は起こりません。この場合に -n
オ プ ションを指定すると、rsh はパイプから読み込む代わりに、
誤って /dev/null からの読み込みを試みます。
|
|