创建的文件的权限是如何RollingFileAppender
确定的?
我最近更改了一个守护进程,我必须以非 root 用户身份运行,并且现在正在使用权限0600
(仅所有者可读)创建文件,但我希望它们可以被所有或至少成员读取管理员组(0644
或0640
)。我的 tomcat 应用程序创建的文件始终是0644
(所有人都可读)。
我不知道我是否无意中更改了其他内容,或者是否与该用户的权限有关。我将父目录0777
作为测试,它似乎没有帮助(它是0755
)。显然没什么大不了的,因为我可以sudo
看它们,但是很烦人,如果我必须让客户为我复制它们,那将是一个问题。
jsvc/commons-daemon
环境是用于运行守护进程的 Ubuntu 10.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>
....