こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

catalina.policyのFilePermissionの設定について。

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ファイル内で何か設定するものがほかにあるのでしょうか?ご教授願えればと思います。よろしくお願いいたします。


 

投稿日時 - 2007-04-13 10:14:22

QNo.2917216

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

返答遅れてすみません。

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

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

投稿日時 - 2007-05-08 08:46:39

ANo.1

以下の補足説明をお願いします。
(1)Apacheの実行ユーザとデプロイユーザは同じですか??
(2)/var/local/myapp readのアクセス権限はどうなってますか??

投稿日時 - 2007-04-17 14:26:39

補足

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

(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:28

あなたにオススメの質問