rshコマンドは、ネットワークで接続されたリモートホスト上でコマンドを実行します。
リモートホスト上で簡単なコマンドを実行したいという場合に使用します。rshコマンドは、他のユーザでコマンドを実行する場合を除いて、パスワードを要求しません。
rshコマンドを実行するためには、リモートホスト上にローカルホストと同じユーザが存在しなければなりません。つまり、複数のコンピュータのユーザになっている場合にのみ実行できることになります。ただし、リモートホスト上のユーザがローカルホストの異なるユーザにrshコマンドの実行を許可している場合は、実行することが可能です。
また、偶然ユーザ名が一致してコマンドが実行できてしまうといったことがないように、ユーザは自身のホームディレクトリに「.rhosts」というファイルを下に示す形式で作成して、許可するホスト以外からのrshコマンドの実行をブロックすることができます。逆に言うと、「.rhosts」というファイルを使って、リモートでのコマンド実行要求を許可する定義を事前に行っておかなければならないということです。
linux01 master
linux02 takeda
この指定では、「linux01」というホスト名のコンピュータの「master」というユーザと、「linux02」というホスト名のコンピュータの「takeda」というユーザに、このコンピュータに対してのrshコマンドの実行を許可している
リモートホストとは、ネットワーク上に存在する他のコンピュータのことです。それに対して、ローカルホストとは、現在自分が使用しているコンピュータのことです
- ① -n
- コマンドの入力を「/dev/null」にリダイレクトします。「/dev/null」は何もないと考えることができ、この場合は入力が何もないと解釈されます。このオプションを指定することによって不用意に標準入力のデータをリモートホストに送ることを回避できます。入力データを送る必要のないコマンドを実行する時には、積極的にこのオプションを指定すべきでしょう。
- ② -l USER
- 現在ログインしているユーザ以外でコマンドを実行する場合に、リモートホストに定義されているユーザ名を「USER」で指定します。
- ① HOST
- コマンドを実行するホストを指定します。
- ② COMMAND
- リモートホストで実行するコマンドを指定します。
[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コマンド辞典 ビギナー編」(2003年)を元にWeb用に再編集したものです
All Contents copyright © 2003-2009 Odyssey Communications Inc., Shoeisha Co., Ltd.