2017-02-24 593 views
2

catalina.out文件使用“-rw-r -----”权限(即640权限)创建。我想给予“其他人”的阅读许可,但这并未发生。Tomcat 8更改catalina.out权限,使其可被所有人读取

尝试设置umask作为022在setenv.sh和其他地方,但这并没有帮助。

还尝试使用相同的tomcat用户手动触摸文件,它们使用“-rw-rw-r--”(即664权限)创建。所以不知道为什么tomcat会这样做。

也不想手动更改使用chmod等的权限,因为这是一种黑客攻击,需要在文件删除的情况下重复。

回答

2

通过添加名为“UMASK”(全部大写)的环境变量解决了该问题,如下所示。这个env变量应该在调用catalina.sh之前设置。

export UMASK="0022" 

给予一定的背景下,catalina.sh脚本查找UMASK环境变量(可选)。如果该变量不存在于环境中,则Tomcat使用默认的UMASK 0027,否则它使用umask的覆盖值。

0

我猜你已经尝试这些解决方案:

  1. 在.profile文件/ .bash_profile中设置的umask。
  2. 在etc/init.d/tomcat6中设置umask(如果已安装)。
  3. 验证umask是否存在并重新启动进程以检查文件权限。

尝试为所需用户的日志目录给予特殊权限。 请参阅此link以获取完整配置。

+0

[Dextro67](http://stackoverflow.com/users/3886428/dextro67) - 我已经尝试了第一个和第三个选项,他们不工作。第二个选项不适用于我的情况,因为tomcat在我的安装中不是服务。最后(第4个)选项不相关,因为我不使用logrotate。 – janeshs

+0

正如我在我的问题中已经提到的,当我手动创建任何文件(使用“touch”命令)作为“tomcat”用户时,umask很荣幸。但是,当tomcat(作为同一个“tomcat”用户运行)创建日志文件时,它并不是很荣幸。奇怪!! – janeshs

+0

@janeshs你发现Tomcat进程没有兑现OS umask值吗? – Dextro67