Apache Tomcat 日志记录默认权限

问题描述 投票:0回答:3

我想知道是否有任何方法可以设置使用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

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

任何帮助/指导将不胜感激!

感谢您的宝贵时间。

java apache tomcat logging
3个回答
16
投票

今天我花了很长时间寻找这个问题,所以我将我的解决方案发布到这张旧票上。 我正在 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


0
投票

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

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


0
投票

如果有人搜索 Tomcat10(我们有 debian unix 服务器),请向您提供信息:

  • Tomcat9你可以设置umask=0002
  • Tomcat10搜索环境变量UMASK=0002
© www.soinside.com 2019 - 2024. All rights reserved.