【Bash】「rsh」 - リモートホストでコマンドを実行
Shell Script / シェルスクリプト
【Bash】
「rsh」 - リモートホストでコマンドを実行
「rsh」コマンドとは
「rsh」コマンドは、リモートホストでコマンドを実行するコマンド。
セキュリティ性を考慮する場合は、「ssh」コマンドを使用する。
指定したホスト上でコマンドを実行することができる。
「rsh」コマンドを使用するときには、接続先ホストに「~/.rhosts」ファイルを作成しておく必要がある。
- リモートホスト上で簡単なコマンドを実行する際に利用できる。
- 他のユーザでコマンドを実行する場合を除いて、パスワード入力の必要なし。
- 「rsh」コマンドを実行するには、リモートホスト上にローカルホストと同一ユーザーを作成する必要がある。
- 複数のリモートホストで実行する場合は、すべてに同一名のユーザーを作成する必要がある。
- リモートホストが、異なるユーザーに、「rsh」コマンド実行を許可している場合は、実行可能。
- リモートホストは、「.rhosts」ファイルを作成することにより、ホストの許可・不許可を指定して、ブロックすることが可能。
- リモートでのコマンド実行要求を許可する定義する「.rhosts」ファイルを事前に作成しておく必要がある。
- 「/etc/xinetd.d/rsh」設定ファイルを「disable = yes」を「disable = no」に変更する。
書式
rsh [-n] [-l USER] HOST COMMAND
rsh オプション ホスト名 コマンド
オプション
-n |
コマンドの入力を「/dev/null」にリダイレクト。
「/dev/null」は何もないと考えることができ、この場合は入力が何もないと解釈される。
オプションを指定することによって不用意に標準入力のデータをリモートホストに送ることを回避。
入力データを送る必要のないコマンドを実行する時に利用できる。
|
-d | デバック機能を実行する |
-l USER | 現在ログインしているユーザ以外でコマンドを実行する場合、リモートホストに定義されているユーザ名を「USER」で指定。 |
引数
HOST | コマンドを実行するホストを指定。 |
COMMAND | リモートホストで実行するコマンドを指定。 |
サンプルコマンド
rsh ホスト名 コマンド | ホストを指定してコマンドを実行。 |
rsh -l ユーザー名 ホスト名 コマンド | ユーザーとホストを指定してコマンドを実行。 |
rsh host01 ls -l dir01 | リモートホスト「host01」で「dir01」ディレクトリ一覧を表示。 |
rsh -l User01 host01 ls -l | ホスト「host01」のユーザー「User01」を指定して、カレントディレクトリ一覧を表示。 |
設定
「rsh」コマンドを利用するには、
- 「.rhosts」ファイルを作成・設定する。
- 「/etc/xinetd.d/rsh」設定ファイルを変更する。
などの設定をしなければならない。
「.rhosts」ファイル
ホスト名のユーザー名に対してのrshコマンドの実行を許可していることを記述している。
書式
ホスト名 ユーザー名
linux01 master
linux02 takeda
「/etc/xinetd.d/rsh」設定ファイルを変更する
# default: on
# description: The rshd server is the server for the rcmd(3) routine and, \
# consequently, for the rsh(1) program. The server provides \
# remote execution facilities with authentication based on \
# privileged port numbers from trusted hosts.
service shell
{
socket_type = stream
wait = no
user = root
log_on_success += USERID
log_on_failure += USERID
server = /usr/sbin/in.rshd
disable = no <========「yes」から「no」に変更することで「rsh」コマンドが利用可能となる。
}