Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

rsh

リモートホストでコマンドを実行する
2015/05/20 08:00

対応OS: linux , freebsd, solaris
rsh [-n] [-l USER] HOST COMMAND

 rshコマンドは、ネットワークで接続されたリモートホスト上でコマンドを実行します。

 リモートホスト上で簡単なコマンドを実行したいという場合に使用します。rshコマンドは、他のユーザでコマンドを実行する場合を除いて、パスワードを要求しません。

 rshコマンドを実行するためには、リモートホスト上にローカルホストと同じユーザが存在しなければなりません。つまり、複数のコンピュータのユーザになっている場合にのみ実行できることになります。ただし、リモートホスト上のユーザがローカルホストの異なるユーザにrshコマンドの実行を許可している場合は、実行することが可能です。

 また、偶然ユーザ名が一致してコマンドが実行できてしまうといったことがないように、ユーザは自身のホームディレクトリに「.rhosts」というファイルを下に示す形式で作成して、許可するホスト以外からのrshコマンドの実行をブロックすることができます。逆に言うと、「.rhosts」というファイルを使って、リモートでのコマンド実行要求を許可する定義を事前に行っておかなければならないということです。

.rhosts」ファイル
linux01 master 
linux02 takeda
この指定では、「linux01」というホスト名のコンピュータの「master」というユーザと、「linux02」というホスト名のコンピュータの「takeda」というユーザに、このコンピュータに対してのrshコマンドの実行を許可している
リモートホストとローカルホスト

 リモートホストとは、ネットワーク上に存在する他のコンピュータのことです。それに対して、ローカルホストとは、現在自分が使用しているコンピュータのことです

オプション
① -n
コマンドの入力を「/dev/null」にリダイレクトします。「/dev/null」は何もないと考えることができ、この場合は入力が何もないと解釈されます。このオプションを指定することによって不用意に標準入力のデータをリモートホストに送ることを回避できます。入力データを送る必要のないコマンドを実行する時には、積極的にこのオプションを指定すべきでしょう。
② -l USER
現在ログインしているユーザ以外でコマンドを実行する場合に、リモートホストに定義されているユーザ名を「USER」で指定します。
引数
① HOST
コマンドを実行するホストを指定します。
② COMMAND
リモートホストで実行するコマンドを指定します。
リモートホスト「host02」でコマンドを実行する
[cmd@host01]$ rsh host02 ls -l dir03 
total 12
drwxrwxr-x 5 cmd cmd 4096 Jun 29 17:39 dir01
drwxrwxr-x 2 cmd cmd 4096 Jun 29 23:21 dir03
-rw-rw-r-- 1 cmd cmd 39 May 11 21:53 file03b
[cmd@host01]$
ユーザを指定してコマンドを実行する
[cmd@host01]$ rsh -l takeda host02 ls -l 
total 24
-rw-rw-r-- 1 takedak takedak 12 Jul 19 01:48 file01
-rw-rw-r-- 1 takedak takedak 19 Jul 19 01:48 file02
-rw-rw-r-- 1 takedak takedak 26 Jul 19 01:48 file03
-rw-rw-r-- 1 takedak takedak 33 Jul 19 01:48 file04
-rw-rw-r-- 1 takedak takedak 40 Jul 19 01:48 file05
-rw-rw-r-- 1 takedak takedak 70 Jun 28 21:17 wc01
[cmd@host01]$

関連タグ

UNIXコマンド辞典トップページに戻る

All contents copyright © 2005-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5