关于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

[[email protected] 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

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

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

时间: 2024-10-03 23:09:07

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

修改winform安装包写日志文件权限

1.如果程序有写入文件的功能要添加该文件 并配置该属性 改成这个即可 原文地址:https://www.cnblogs.com/teng-0802/p/11776095.html

如何设置WebLogic生成的日志文件的权限?

在运维的过程中,有时我们需要以有别于启动WebLogic的用户去访问或收集日志等信息,以及时了解系统运行情况,这就要求日志文件的访问权限是允许其他用户访问的.一般情况下,新生成的文件默认权限是根据操作系统的umask的设置决定的.那如何改变WebLogic运行时产生的日志文件的访问权限呢? 如果通过操作系统的umask命令修改是不会生效的,因为在WebLgoic的启动脚本startWebLogic.sh中有类似这么一条命令"umask 022",其覆盖了操作系统的设置. 比如start

Linux文件权限;ACL;Setuid、Setgid、Stick bit特殊权限

相关学习资料 http://blog.sina.com.cn/s/blog_4e2e6d6a0100g47o.html http://blog.csdn.net/aegoose/article/details/25439649 目录 1. Linux文件系统权限 2. Linux目录文件权限的安全配置 1. Linux文件系统权限 文件与(或)目录是文件系统的具体表现形式,在Linux系统管理部分,文件与目录管理映射了Linux文件系统管理策略的重要方面 0x1: 文件系统的默认权限(umask

Linux的文件权限和目录配置

二.Linux的基本操作 2.1.Linux的文件权限和目录配置 2.1.1.Linux文件属性 以root身份登录后,执行“ls –al”将会出现如下内容: [[email protected] ~]# ls -al 总用量 44 dr-xr-x---. 5 root root 4096 8月   6 14:44 . dr-xr-xr-x. 17 root root 4096 7月 25 05:33 .. -rw-------. 1 root root 1426 7月 25 05:35 ana

PHP error_log()将错误信息写入日志文件

error_log() 是发送错误信息到某个地方的一个函数,在程序编程中比较常见,尤其是在程序调试阶段. bool error_log ( string $message [, int $message_type = 0 [, string $destination [, string $extra_headers ]]] ) 把错误信息发送到 web 服务器的错误日志,或者到一个文件里. message 应该被记录的错误信息.信息长度限制:The default seem to be 1024

Linux文件权限与目录管理

Linux文件系统的三种身份 文件所有者 同组用户 同一个用户组的用户可以访问该用户组的文件: 每个账号可以加入多个用户组. 在同一个用户组的文件也可以设置不同的权限,可以不让本组用户查看. 其他人 除了文件主.同组用户以外的人就是其他人. PS: /etc/passwd 记录所有用户的账号 /etc/shadow 记录所有用户的密码 /etc/group 记录所有的组名 文件属性 ls -al 显示所有的文件名和相关属性(包括以.开头的隐藏文件) total 72 drwxr-xr-x+ 28

Linux文件权限、用户、用户组

linuxsocketgo存储c 单个文件名或目录名长度不超过255字符: 文件或目录的绝对路径长度不超过4096字符: 一.文件所有者与用户组 一个文件有很多属性,包括文件类型.文件权限.文件隐藏权限.文件所有者.用户组.文件大小.创建日期.修改日期.访问日期等,比如下面是/etc/inittab文件的属性: 1.文件类型 (1)d:目录:find / -type d 查询: (2)-:一般文件:find / -type f 查询: (3)l:链接文件:find / -type l 查询: (

第六章 Linux的文件权限与目录配置

第六章 Linux的文件权限与目录配置 6.1Linux用户身份与用户组记录的文件 每个账号都可以有多个用户组支持 /etc/passwd              用户账号 /etc/shadow             账号密码 /etc/group                 组账号 6.2权限 文件的RWX权限只涉及对文件内容的约束 文件夹的RWX权限只涉及对文件夹下的文件的约束 ls原理:根据身份对文件夹访问时,若该身份对该文件夹为r--,则结果只返回文件名列表:若为r-x,返回文

Oracle重做日志文件

http://blog.csdn.net/leshami/article/details/5749556 一.Oracle中的几类日志文件 Redo log files      -->联机重做日志 Archive log files   -->归档日志 Alert log files     -->告警日志 Trace files         -->跟踪日志 user_dump_dest          -->用户跟踪日志 backupground_dump_dest