• ベストアンサー

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

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

  • Java
  • 回答数1
  • ありがとう数0

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

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

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

関連するQ&A

  • Tomcat Servletが動きません

    『Javaへの道:Tomcat』のページを参考に同じようにやってるのですが、 JSPはうまくいくのですがServletがうまくいきません。 (長文になります) 参考ページと私の環境で違う点 Windows XP Home → XP Pro Tomcat 6 → Tomcat 7 JDK6.0 → JDK6.23 ポート8080 → 8081 以下のファイル、フォルダを作りました(参考ページそのままです)。 C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\javaroad\jspdir\HelloJsp.jsp C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\javaroad\WEB-IMF\classes\HelloServlet.class C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\javaroad\WEB-IMF\web.xml C:\Program Files\Apache Software Foundation\Tomcat 7.0\conf\Catalina\localhost\javaroad.xml --↓↓HelloJsp.jspここから↓↓-- <HTML> <BODY> from JSP source<br> <%= new java.util.Date() %> </BODY> </HTML> --↑↑HelloJsp.jspここまで↑↑-- --↓↓web.xmlここから↓↓-- <?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <servlet> <servlet-name>Hello</servlet-name> <servlet-class>HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Hello</servlet-name> <url-pattern>/Hello</url-pattern> </servlet-mapping> </web-app> --↑↑web.xmlここまで↑↑-- --↓↓javaroad.xmlここから↓↓-- <Context path="/javaroad" reloadable="false"/> --↑↑javaroad.xmlここまで↑↑-- JSPを起動 http://localhost:8081/javaroad/jspdir/HelloJsp.jsp → 正しく表示される Servletを起動 http://localhost:8081/javaroad/Hello → ステータス404 The requested resource (/javaroad/Hello) is not available. <気になる点> 1.Tomcatを起動するためStratボタン押しても1回では起動せず、2~3回で起動する。  1回目のときcommons-daemon.2011-01-15.logにこんなログが出る。  [2011-01-15 23:01:16] [error] Pid file 'C:\Program Files\Apache Software Foundation\Tomcat 7.0\logs\tomcat7.pid' exists  [2011-01-15 23:01:16] [error] ServiceStart returned 1 2.servletクラスは正しくコンパイルできているのか 状況を詳しく説明しようとして長々と書いてしましたが Servletを表示するにはどうしたらいいでしょう? 足りない情報があれば追加します。

    • ベストアンサー
    • Java
  • Servletが動きません・・・

    自分で作成したServletを動かそうとしているのですが、あちこち設定してもどうも動きません。 どこかに設定ミスや漏れがあるのかよくわからないのですが、どなたか教えていただけないでしょうか? ☆環境 WindowsXP,Tomcat4.1,IE6.0 【Tomcatのインストール場所】 C:\Program Files\Apache Group\Tomcat 4.1 【開発物の起き場所】 C:\Program Files\Apache Group\eclipse\workspace\myapp 【myapp配下の構成】  myapp\WEB-INF\classes\jp\co\aaa\bbb\TestServlet.class  myapp\WEB-INF\lib  myapp\WEB-INF\src  myapp\doc  myapp\jsp  myapp\src  myapp\work

    • ベストアンサー
    • Java
  • Servlet/JSPのアクセス制限

    Apache 2.2.x + Tomcat 5.5.xでサーバをたてています。 そこに、とあるサーブレット、ないしはJSPのファイルがあるとします。  www.somewhere.com/apps/servlet_or_jsp これを、通常は、同一サイト内にあるhtmlファイルのフォームから呼び出しています。  www.somewhere.com/foo.html   <form action="apps/servlet_or_jsp" ...> ここで、別サイトにあるhtmlファイルのフォームから、上記のファイルを呼び出そうとしてみます。  www.somewhereelse.com/bar.html   <form action="www.somewhere.com/apps/servlet_or_jsp" ...> すると、件のファイルを実行できてしまうのですが、これを外部サイトから実行できないようにするにはどうすれば良いのでしょうか? もしかしたら、とてつもなくくだらないことなのかもしれませんが、入門書を見たりWebで検索してみても答えが見つからなかったので、質問させてください。

  • TomcatでServletの配置場所を変更できますか?

    Tomcatを使ってServletを開発しています。 普通ならば、d:\tomcat\webapps\test\WEB-INF\classes に開発したServletを配置しますが、 事情があって、別のドライブにServletを置きたいのです。 # 例 E:\test\classes\ その場合、どのようにすればよいのでしょうか? どなたか、アドバイスよろしくお願いします。

  • WTP,JSP,Servlet

    WTPを使って開発をしています。 設定まではうまくいきました。 一応環境をお知らせします。 ・WindowsVista ・WTP ・Tomcat6.0 ・Java6.0 ○実現したい事 JSP画面のフォームから送信ボタンでServletを呼ぶ。 ○困っていること JSP画面からServletが呼べない。 どうも <form method="post" action="com.Servlet"> のactionの指定が間違っているようです。 ○ソース環境 JSP : ルート/WebContent/JSP画面 Servlet : ルート/src/com/Servlet.java class : ルート/build/classes/com/Servlet.class ○エラー HTTPステータス 404 - /ルート/com.Servlet Actionの指定をいろいろと試したのですがダメでした。 Sevletの代わりにJSP画面と同じフォルダ内の他のJSPファイルを指定したらうまくいってます。 情報が足りなかったらすいません。 どうぞよろしくお願いします。

    • ベストアンサー
    • Java
  • Servletについて教えてください。

    Servlet/JSPをローカルでテスト環境を持っているのですが、ローカルで実行できる動作をサーバにあげて実行したいのですが、実行できません。 Tomcat5とMySQLを使いショッピングカートてきなものを使いたいのですが、動作させるには、どのようにしたらよいのでしょうか? 見当もつかないので、どなた様か教えていただけないでしょうか? また、サーバといっても@niftyのwebサーバなのですが、コールセンターに電話で確認したところ、実行することは可能だとの回答をいただきました。 お教えしていただけないでしょうか? よろしくお願いします。

  • Servlet,Bean,JSPの場所

    今以下の環境です。 Linux(RedHat) Apache1.3.1 Tomcat3.2.3 開発したのはJBuilderで開発しました。 Servlet+JSP+Beanを連携させております。 これをサーバ上において、テストしたいのですが、 ソースを置く場所など、基本的なことが分かっておりません。 サーバ設定をするのがやっとでした。 基本的な流れとかソースを置く場所とか 教えていただきたいのですが、、、お願いします。 また、分かりやすいページがありましたら教えてください。

  • Servlet & セキュリティ(SSL)

    Servletのシステムをつくります。 そこで、ログイン画面として、 ユーザIDとパスワードを入力させて OKなら、システム利用ができるように します。 セキュリティ確保のためパスワード入力画面は、 SSL化しようと思っています。 調べると、WebサーバにSSL化を図れば いいのかな?と思いました。 使用するのは以下のとおりです。 [サーバ側] Redhat7.2 Tomcat3.2.1 もしかしたらApache使うかもしれません。 今のところTomcatをWebサーバにしてますが。 ApacheもTomcatもSSL化できるようですが、 どちらがスタンダードなのでしょうか? また、利点等ご存知でしたら教えていただき たいのですが、よろしくお願いします。

    • ベストアンサー
    • Java
  • Tomcatでプログラムが動きません

    開発環境: Windows Vista SP2 Home java 2 SDK 1.6.0_24 Tomcat 6.0 です。 現在javaのservletとJSPをtomcatで勉強している者です。 http://journal.mycom.co.jp/special/2007/struts2/menu.html http://codezine.jp/article/detail/2296 を参考にしてTomcatを使い自分で作成したservletやJSPを動作させようとしたのですが 404エラー(存在しないファイル)が排出されるだけで実行できません。 上記のページが提供しているプログラムやweb.xml及びservlet.xml(javaroad.xml)を 配備しましたが404エラーが排出されるだけで動作しません。(編集するたびにTomcatを再起動させています) http://localhost:8080/のトップページは表示されますのでtomcatは動作していると思いますが、残念ながらどこが間違っているのか検討がつきません。 Tomcat Webアプリケーションマネージャで表示はされ、起動しようとするとアプリケーションが起動できませんと表示されます どのようにすれば宜しいのでしょうか、どうかご教授願います。

  • Tomcatでプログラムが動作しません。

    Apache tomcatの事なのでオープンソースかこちらにご相談させていただこうか悩みましたがこちらにさせていただきました。 開発環境: Windows XP SP3 Professional java 2 SDK 1.5.0_16 Jakarta Tomcat 5.5.26 です。 現在javaのservletとJSPをtomcatで勉強している者です。 http://www.javaroad.jp/opensource/index.html#tomcat http://www.thinkit.co.jp/cert/article/0708/2/6/2.htm http://www.javadrive.jp/servlet/index.html などを参考にしてTomcatを使い自分で作成したservletやJSPを動作させようとしたのですが 404エラー(存在しないファイル)が排出されるだけで実行できません。 試しに上記のページが提供しているプログラムやweb.xml及びservlet.xml(javaroad.xml)を 配備しましたが404エラーが排出されるだけで動作しません。(編集するたびにTomcatを再起動させています) http://localhost:8080/のトップページとROOTフォルダに上記のサイトのJSPを配備したものは 表示されますのでtomcatは動作していると思いますが、残念ながらどこが間違っているのか検討がつきません。 似たような事例に http://questionbox.jp.msn.com/qa1321207.html?StatusCheck=ON という物を見つけました。 同じように「JSP Examples」と「Servlet Examples」は404エラーが排出されます。 どのようにすれば宜しいのでしょうか、どうかご教授願います。

    • ベストアンサー
    • Java