によって作成されたファイルのアクセス許可はどのようにRollingFileAppender
決定されますか?
最近、root以外のユーザーとして実行する必要があるデーモンプロセスを変更しました。ファイルは現在、0600
(所有者のみが読み取り可能)のアクセス許可で作成されていますが、すべてまたは少なくとものメンバーが読み取り可能にする必要があります。管理者グループ(0644
または0640
)。私のTomcatアプリによって作成されたファイルは、常に0644
(すべての人が読み取り可能)です。
誤って他の何かを変更したのか、それともそのユーザーの権限に関係しているのかはわかりません。テストとして親ディレクトリを作成しましたが0777
、役に立たなかったようです(そうでした0755
)。私はそれらを見ることができるので明らかに大したことではありませんsudo
が、むしろ迷惑であり、顧客にそれらをコピーしてもらう必要がある場合は問題になります。
jsvc/commons-daemon
環境は、デーモンの実行に使用するUbuntu10.04LTSです。ここで重要な場合は、私のlog4j
設定の基本です:
<!DOCTYPE log4j:configuration SYSTEM 'log4j.dtd'>
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="true">
<appender name="StdOutAppender" class="org.apache.log4j.ConsoleAppender">
<!-- only send error / fatal messages to console (catalina.out) -->
<param name="threshold" value="${log4j.StdOutAppender.threshold}" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%5p %d{ISO8601} [%t][%x] %c - %m%n" />
<!--%d{dd-MMM-yyyy HH:mm:ss.SSS} [%5p] %c{2}.%M [line:%L]: %m%n-->
</layout>
</appender>
<appender name="TimeBasedRollingFileAppender" class="org.apache.log4j.rolling.RollingFileAppender">
<param name="append" value="true" />
<param name="encoding" value="UTF-8" />
<param name="threshold" value="${log4j.TimeBasedRollingFileAppender.threshold}" />
<rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
<param name="FileNamePattern" value="${cloud.daemon.log4j.file.config.path}.%d.gz" />
</rollingPolicy>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%5p %d{ISO8601} [%t][%x] %c - %m%n" />
<!--%d{dd-MMM-yyyy HH:mm:ss.SSS} [%5p] %c{2}.%M [line:%L]: %m%n-->
</layout>
</appender>
....