| ホーム >> | UNIX >> | rsh |
rshを用いるとリモートホストでシェルコマンドを実行することができます.
$ rsh 192.168.1.100 mkdir hogeまた,引数にコマンドを付けずに,ホスト名だけ指定するとrloginが実行されてリモートホストにログインすることができます.
$ rsh 192.168.1.100しかし,rshはパスワードを暗号化せずにネットワーク上に流してしまうのでセキュリティのの観点からあまり使われなくなっています. Vine Linux 5.1でも標準的なインストールでは使用できないようになっています.
rshやtelnet, ftpなどによるアクセスを管理しているのがxinetdというデーモンなので,もしインストールされていなければインストールします.Vine Linuxの場合は
# apt-get install xinetdとします.さらに,rshのサーバもインストールする必要があります.
# apt-get install rsh-serverネットワークに繋がっていない環境ならば,xinetd-2.3.14-1vl5.x86_64.rpm などを何らかの方法で取得し,rpmコマンドでインストールします.
rsh-serverをインストールすると/etc/xinetd.d/rsh, rlogin, rexecが出来るので,これらをファイルを開いて次のようにyesをnoに書き換えます.
disable = no次に,
# /etc/rc.d/init.d/xinetd start
# chkconfig --level 35 xinetd onとします.インストール時に既にonになっていれば変更の必要はありません. rshとrloginの自動起動がonになってるかどうかも念のため確かめておきます.
# chkconfig --list rsh
# chkconfig --list rlogin
特定のリモートホストからのみrshによるアクセスを許可する場合には,TCP Wrapperの設定ファイル/etc/hosts.allow, hosts.denyを用います.例えば 192.168.1.10からのみアクセスを許可したい場合には,/etc/hosts.allowに
ALL:192.168.1.10と書き,/etc/hosts.denyに
ALL:ALLと書きます.これで全てのアクセスを不許可とした上で,hosts.allowに書かれたホストからのアクセスのみを許可します.192.198.1.で始まる全てのホストからのアクセスを許可する場合,example.comに属する全てのホストからのアクセスを許可する場合などには,
ALL:192.168.1.とすることもできます.
ALL:*.example.com
複数のホストのユーザー名が同じでパスワードによる認証が必要がない場合には,/etc/hosts.equivにホスト名を書いておきます.ユーザー毎に指定する場合には,~/.rhostsに書きます.
192.168.1.1/etc/hosts.equivと~/.rhostsの両方がある場合には後者が優先されます.
192.168.1.2
192.168.1.3
rootでrshを行う場合には /etc/hosts.equiv は参照しないので,/root/.rhosts にホスト名を書いておく必要があります.
さらに/etc/securettyに
# echo rsh >> /etc/securetty
# echo rlogin >> /etc/securetty