Ubuntu Server セットアップ備忘録 (6) - Tomcat のセキュリティポリシー修正

/var/lib/tomcat5.5/logs/catalina.*.log を覗くと、なにやら例外メッセージで埋め尽くされています。なんじゃこりゃあ!!と思って内容を見てみると、こんな感じのスタックトレースがひたすら延々と続いています。


2008/07/02 0:06:43 org.apache.commons.modeler.Registry unregisterComponent
SEVERE: Error unregistering mbean
java.security.AccessControlException: access denied (java.io.FilePermission /usr/share/tomcat5.5-webapps/jsp-examples/WEB-INF/classes/logging.properties read)
..
2008/07/02 0:06:43 org.apache.commons.modeler.Registry unregisterComponent
SEVERE: Error unregistering mbean
java.security.AccessControlException: access denied (java.io.FilePermission /WEB-INF/classes/logging.properties read)
..
つまるところ、 servlet-examples と jsp-examples それぞれの /WEB-INF/classes/logging.properties に対するアクセスがセキュリティポリシに弾かれています。デフォルトの設定内容が間違っているんですね。

これを解消するため、 /etc/tomcat5.5/policy.d/50user.policy に以下を追記しました。


// These permissions apply to JULI
grant codeBase "file:${catalina.home}/bin/tomcat-juli.jar" {
  permission java.io.FilePermission "/usr/share/tomcat5.5-webapps/servlets-examples/WEB-INF/classes/logging.properties", "read";
  permission java.io.FilePermission "/usr/share/tomcat5.5-webapps/jsp-examples/WEB-INF/classes/logging.properties", "read";
  permission java.io.FilePermission "${catalina.base}/webapps/chanbara/WEB-INF/classes/logging.properties", "read";
  permission java.io.FilePermission "${catalina.base}/webapps/spochan/WEB-INF/classes/logging.properties", "read";
};

これで "sudo /etc/init.d/tomcat5.5 restart" すると、その後のログはスッキリキレイになりました。

こーいう、ユーザが修正しなきゃいけないとこ、リナックスクオリティ、って感じ。