码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-02-02 14:14:04      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:统一   read   tom   file   个人   文件权限   认证   权限   通知   

背景介绍

我们的生产环境下有一套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@z00w00-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

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

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

标签:统一   read   tom   file   个人   文件权限   认证   权限   通知   

原文地址:http://blog.51cto.com/z00w00/2068053

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!