线上机器的程序文件(包括TOMCAT自身)使用APP账号作为属主运行,同时禁止了APP账号的BASH。登录系统使用了统一认证,这样每个人都有自己的账号登录系统。为了方便开发人员登录查看日志,日志文件的文件权限为"rw-r-r",同时也是系统默认的umask。这里简单说下umask权限码。在Linux系统下,新建目录的权限是777减去umask码值,新建文件的权限是666减去umaks码值,由于linux默认的umask是0022,所以一般新建目录和文件的默认权限分别是755和644。
[root@localhost ~]# umask
0022
但是,在部署tomcat后,发现tomcat的日志文件catalina.out的权限是640(即"rw-r-----"),新生成的日志文件权限全都是640,开发者使用其他用户登录后对这些日志文件均不可读!
-rw-r----- 1 app app 356K 12月 08 19:09 catalina.out
-rw-r----- 1 app app 33M 12月 05 11:30 catalina.out.4.gz
-rw-r----- 1 app app 31M 12月 06 08:44 catalina.out.3.gz
-rw-r----- 1 app app 31M 12月 07 10:02 catalina.out.2.gz
-rw-r----- 1 app app 45M 12月 08 19:09 catalina.out.1.gz
原因分析:Tomcat在启动(catalina.sh)时会重新设置UMASK
Tomcat在启动服务时可能会重新设置UMASK值,其默认值为0027,而操作系统的默认值0022,两者不一样。解决办法:需要到catalina.sh脚本里修改UMASK值:
将catalina.sh脚本中的"UMASK"的值由"0027"改为"0022",即改成系统当前用户的umask即可。
----------------------end---------------------
推荐阅读: