「Tomcat」jsvc の "-outfile" に指定したファイルのパーミッションを変更する方法
jsvc のオプション "-outfile" に指定したファイルのパーミッションを変更する方法について
調べたので、その時のメモ。
環境は、以下のエントリーのもの使用しております。
http://a4dosanddos.hatenablog.com/entry/2013/07/04/002354
デフォルトの状態では、どうなるのかっていうと、"600" となっていた。
-rw------- 1 root root 1136 7月 4 00:24 2013 catalina-daemon.out
例えば、こいつを "644" とかにしたい場合、どうすればいいのか。
以下の jsvc のドキュメントを確認してみても、パーミッションを指定できるようなオプションが
見当たらない ( umask 的な )。
http://commons.apache.org/proper/commons-daemon/jsvc.html
ただ、リリースノートみてみると、Jsvc 1.0.08 で umask なるオプションが追加された旨の記載がある。
http://www.apache.org/dist/commons/daemon/RELEASE-NOTES.txt
* DAEMON-221: Add -umask to jsvc so that users don't have to recompile the jsvc if different umask is desired (1.0.8)
上記踏まえて、"-umask" 指定してやってみた。daemon.sh に以下を追記する。
start ) "$JSVC" $JSVC_OPTS \ -java-home "$JAVA_HOME" \ -user $TOMCAT_USER \ -umask 022 \ <- ここを追記
無事、パーミッションを "644" することができた。
-rw-r--r-- 1 root root 2259 7月 4 00:35 2013 catalina-daemon.out
以上です。
■■ 参考 ■■
1. jsvc 1.0.13 以前のバージョンには、"-umask 022" の場合、パーミッションの設定が
うまくいかないバグがあるみたいです。
https://issues.apache.org/jira/browse/DAEMON-280
はじめ、Tomcat 7.0.34 ( jsvc 1.0.10 が同梱 ) でやってて、うまくいかなくて結構はまった・・・
2. jsvc のコンパイル時にデフォルトのパーミッションの指定ができるみたい。
「commons-daemon-1.0.15-native-src/unix/native/arguments.c」に、以下のような箇所がある。
175 #ifndef JSVC_UMASK 176 args->umask = 0077;
上記の "0077" を "0022" とかにしてやると、デフォルトのパーミッションが "644" となった。
理由とかは、C のソース読めない自分には、あまりに険しい道のりになりそうなので調べてません・・・