Apache Tomcat 记录默认权限

Posted

技术标签:

【中文标题】Apache Tomcat 记录默认权限【英文标题】:Apache Tomcat logging default permissions 【发布时间】:2013-12-31 09:51:03 【问题描述】:

我想知道是否有任何方法可以设置使用 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 和其他替代方案的文档后,我不确定这是否可行。

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

感谢您的宝贵时间。

【问题讨论】:

【参考方案1】:

我今天花了很长时间寻找这个,所以我发布了我对这张旧票的解决方案。我正在使用 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 日志。【参考方案2】:

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

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

【讨论】:

以上是关于Apache Tomcat 记录默认权限的主要内容,如果未能解决你的问题,请参考以下文章

tomcat程序生成的日志文件权限640

linux tomcat安全配置

Apache Tomcat 应用程序的默认会话超时

修改apache tomcat默认启动端口为80

修改apache tomcat默认启动端口为80

修改apache tomcat默认启动端口为80