• ベストアンサー

Servletでのファイルアクセスについて

現在、RedHad5にTomcat7.0をインストールした環境でJSP・ServletによるWebシステムを開発しています。 そのシステムというのが/etc/hostsのファイルを読み込み、内容を編集するというものです。 その為、ServletからFileInputStreamで/etc/hostsを開こうとしているのですが、書き込みはおろか読み込みさえすることができず、「FileNotFound 許可がありません」といったようなエラーメッセージが返されてしまいます。 読み込みだけでもどうにかして行うことはできないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

おそらく、tomcatを実行しているユーザーに/etc/hosts対するアクセス権限が与えられていません。 /etc/hostsはシステムに関わる重要なファイルですので、セキュリティ的には妥当な動作です。 もし読み取りを行いたい場合は、一時的に/etc/hostsへのアクセス権限を持ったユーザーになって、 tomcatを実行しているユーザーがアクセスできる場所に、hostsファイルをコピーするシェルスクリプトを書くのが良いと思います。 とにかく急いでいるなら、tomcatを実行しているユーザーに対して/etc/hostsへのアクセス権限を与えるのも手ですが、 tomcat及びサーブレットの脆弱性を突かれた場合の被害が増します。