Apache Tomcat记录默认权限

jav*_*uce 9 java apache logging tomcat

我想知道是否有办法设置使用Tomcat的logging.properties文件创建的日志的默认文件权限?我的logging.properties文件如下所示:

handlers = java.util.Logging.FileHandler

java.util.logging.FileHandler.level = INFO
java.util.logging.FileHandler.pattern = /var/lib/<TOMCAT INSTANCE>/logs/system.log
java.util.logging.FileHandler.limit = 2097152
java.util.logging.FileHandler.count = 50
java.util.logging.FileHandler.formatter = java.util.Logging.SimpleFormatter
Run Code Online (Sandbox Code Playgroud)

我希望创建的所有日志都具有640的文件权限,但是在阅读了一些关于FileHandler和其他替代方案的文档后,我不确定这是否可行.

任何帮助/方向将不胜感激!

谢谢你的时间.

Lau*_*ura 12

我今天花了很长时间搜索这个,所以我发布了我的解决方案.我在Linux安装工作,我相信原始海报也在使用.

在Tomcat 8.5中,它由环境变量UMASK控制.如果在启动Tomcat时未设置此变量,则Tomcat会将umask设置为0027,以便文件具有权限(rw-r -----).您可以在Tomcat的bin/catalina.sh文件中看到此逻辑.

这个解决方案与pksiazek的解决方案不同,因为它不涉及编辑任何Tomcat的脚本,如果这是一个问题.它与pksiazek的解决方案相同,它将影响Tomcat创建的所有文件,而不仅仅是日志文件.

对于不熟悉umask值如何映射到文件权限的人,您可能会发现Umask计算器很有用.这是一个:http://www.webune.com/forums/umask-calculator.html

  • 应该在`tomcat/bin/setenv.sh`中设置环境变量.`export UMASK ='0022'`给了我-rw-r - r--用于tomcat日志. (7认同)

小智 0

唯一的方法是更改​​ Tomcat 进程所有者的 umask(最好的位置是 Tomcat 启动脚本)。

但请注意,这将更改 Tomcat 创建的所有文件的权限。