dポイントプレゼントキャンペーン実施中!

Webアプリケーションがデプロイされているディレクトリ外にあるディレクトリおよびファイルを読み書きする方法としてcatalina.policyファイルにFilePermissionを設定することにしました。

環境説明:
webサーバ: Apache2 Tomcat5
os: CentOS4.4
webアプリのデプロイディレクトリ:/usr/local/tomcat/webapps/myapp
参照したいディレクトリ:/var/local/myapp

catalina.policyの設定:
SYSTEM CODEパーミッションとCATALINA CODEパーミッションの設定はそのまま。
WEB APPLICATION パーミッションの一番最後に
grant codeBase "file:/usr/local/tomcat/webapps/myapp/-" {
permission java.io.FilePermission "/var/local/myapp","read,write,execute,delete" };
と入力しました。これによりmyappディレクトリ以下のclassファイルが/var/local/myappディレクトリ内にアクセスできるようになると思うのですが、/usr/local/tomcat/bin/catalina.sh start -securityとしてTomcatを起動。またApacheも起動して実行すると以下のエラーが発生してしまいます。
java.security.AccessControlException: access denied (java.io.FilePermission /var/local/myapp read)
java.security.AccessControlContext.checkPermission(AccessControlContext.java:264)
java.security.AccessController.checkPermission(AccessController.java:427)
java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
java.lang.SecurityManager.checkRead(SecurityManager.java:871)
java.io.File.canRead(File.java:658)
ShowFile.doGet(ShowFile.java:17)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:585)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:243)
java.security.AccessController.doPrivileged(Native Method)
javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:275)
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:161)

何か指定が違っているのでしょうか?あるいは、catalina.policyファイル内で何か設定するものがほかにあるのでしょうか?ご教授願えればと思います。よろしくお願いいたします。


 

A 回答 (2件)

返答遅れてすみません。



chmod 777 myapp を実行し見て下さい。

これで解決すると思います。
    • good
    • 0

以下の補足説明をお願いします。


(1)Apacheの実行ユーザとデプロイユーザは同じですか??
(2)/var/local/myapp readのアクセス権限はどうなってますか??

この回答への補足

回答ありがとうございます。うわー。日にちがたってしまって申し訳ありません。早速補足させていただきます。

(1)Apacheの実行ユーザとデプロイユーザは同じですか??
(2)/var/local/myapp readのアクセス権限はどうなってますか??

1.違います。Apacheの実行ユーザはapacheユーザです。WebアプリのデプロイユーザはTomcatと同一実行ユーザのtomcatです。
2・Tomcatの実行ユーザをtomcatとしていますので、tomcatユーザを所有者としております。パーミッションはこのようになっております。  drwxrwx--- tomcat tomcat ・・・ myapp

  よろしくお願いいたします。お待ちしております。

  

補足日時:2007/04/20 12:26
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!