关于Log42j引发的日志文件权限的问题

背景介绍

我们的生产环境下有一套Tomcat下运行的程序,为了记录应用日志,一般都使用Log4j来完成。

环境描述

一般我们是这样设置,程序文件(包括TOMCAT自身)使用TOMCAT账号作为属主运行,同时禁止了TOMCAT的BASH。登录系统使用了统一认证,这样每个人都有自己的账号登录系统。为了方便开发人员登录查看日志,日志文件的文件权限为rw-r-r 同时也是系统默认的umask 由于TOMCAT和TOMCAT是本地账号,操作人员使用了统一认证方式理论上不属于TOMCAT组的账号只用于READ权限查看即可。但诡异事情发生

现象描述

因为日志比较大,且实时输出,所以每天肯定要做日志轮询。比如当天的日志为abc.log,那么昨天的日志就是abc-20180201.log 这个过程是log4j在凌晨自动切割的。

但诡异的是每天轮询,abc.log的文件权限变成了rw-r—– 既640权限,普通用户没有任何权限了。

-rw-r—– 1 tomcat tomcat 5472401566 Jan 14 23:59 abc-2018-01-27.log
-rw-r—– 1 tomcat tomcat 1240070383 Jan 15 11:02 abc.log

开发人员不能检查应用日志,这是不行的

排查过程

首先检查了目录的umask

[root@linuxidc-host abc]# umask
0022

发现是正常的,接着检查了tomcat的umask,在/etc/profile也没有异常,同时想到tomcat不能登录,所以这个地方的检查意义不大。

随后和开发商议,将日志文件文件权限强行变更,临时恢复的正常

-rw-r–r– 1 tomcat tomcat 5472401566 Jan 14 23:59 abc-2018-01-27.log
-rw-r–r– 1 tomcat tomcat 1240070383 Jan 15 11:02 abc.log

但是第二天,诡异的事情发生了

-rw-r–r– 1 tomcat tomcat 5472401566 Jan 14 23:59 abc-2018-01-14.log
-rw-r—– 1 tomcat tomcat 5472401566 Jan 15 23:59 abc-2018-01-15.log
-rw-r—– 1 tomcat tomcat 1240070383 Jan 16 11:02 abc.log

abc.log文件和凌晨切割的文件abc-2018-01-15.log文件权限全部变回640,而强制修改的abc-2018-01-14.log文件属性没有改变,由于文件切割是由log42j控制,所以基本确定是log4j搞的鬼。

协助开发查了一下log4j2在2.9版本上有一个filePermissions,可以指定文件权限。遂通知开发修改了这个BUG

升级程序,重启测试后,问题解决。

本文永久更新链接地址:https://www.linuxidc.com/Linux/2018-03/151243.htm

关于Log42j引发的日志文件权限的问题

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

栗子博客 软件 关于Log42j引发的日志文件权限的问题 https://www.lizi.tw/soft/8148.html

常见问题
  • 1、杰齐1.7仅适用于PHP5.2 2、需Zend支持 3、尽量使用宝塔面板 4、尽量使用Windows 系统,关关对Linux支持不太友好。
查看详情

相关文章

评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务

关于Log42j引发的日志文件权限的问题-海报

分享本文封面