CentOS4でrshサーバを構築するにはrsh-serverパッケージが必要。
xinetd配下で管理されるので以下のようにファイルを書き換える。
# vi /etc/xinetd.d/rsh
---
disable = no
---
そして再起動。
# service xinetd restart
rshを使えるリモートホストを記述する。
# vi /etc/hosts.equiv
---
111.111.111.111
---
これでIPアドレス111.111.111.111からのrshコマンドを受け付けるようになる。
うまくいかない場合は /etc/hosts.allow と /etc/hosts.deny の設定に問題があるかもしれない。
$ rsh ホスト名 date
上のコマンドの結果が正常に表示されたらOK。
ただしこのままではrootでrshが使えない。
rshサーバのrootのホームディレクトリに以下のようにファイルを作成する。
# vi ~/.rhosts
---
111.111.111.111
---
さらに、以下のようにpamの認証設定の一部をコメント化する。
# vi /etc/pam.d/rsh
---
#auth required pam_securetty.so
---
これで許可したリモートホストからroot権限でパスワードなしにコマンドを打つことが出来るようになる。
しかしifconfigコマンドなど一部のコマンドパスが通っていないのでパスを通しておく必要がある。
bashを利用する場合は以下の要領でパスを追加記述しておく。
# vi /etc/bashrc
---
PATH=$PATH:/sbin:/usr/sbin
---
これで許可したリモートホストからroot権限でパスワードなしでコマンドが打てるようになる。
セキュリティレベルがかなり低下するので注意が必要。
許可されたCentOS4マシンからrshコマンドを打ってみたら /usr/kerberos/bin/rsh が実行される。
これではうまくいかないので以下のコマンドで待避する。ほかにいい方法もあると思うが・・・
# mv /usr/kerberos/bin/rsh /usr/kerberos/bin/rsh.nouse
これでログインし直すと /usr/bin/rsh が使われるようになる。