【问题标题】:Tomcat 8 change catalina.out permissions to be readable by allTomcat 8 将 catalina.out 权限更改为所有人可读
【发布时间】:2017-07-15 05:05:48
【问题描述】:

catalina.out 文件正在使用“-rw-r-----”权限(即 640 权限)创建。我也想向“其他人”授予阅读权限,但这没有发生。

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

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

也不想使用 chmod 等手动更改权限,因为这是一种 hack,需要在删除文件时重复。

【问题讨论】:

    标签: tomcat file-permissions tomcat8


    【解决方案1】:

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

    export UMASK="0022"
    

    为了提供一些背景信息,catalina.sh 脚本会查找 UMASK 环境变量(可选)。如果环境中不存在此变量,则 Tomcat 使用默认的 UMASK 0027,否则它使用 umask 的覆盖值。

    【讨论】:

      【解决方案2】:

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

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

      尝试为所需用户授予对日志目录的特殊权限。 有关完整配置,请参阅此 link

      【讨论】:

      • Dextro67 - 我已经尝试过第一个和第三个选项,但它们不起作用。第二个选项不适用于我的情况,因为我的安装中不是 tomcat 服务。最后一个(第 4 个)选项不相关,因为我不使用 logrotate。
      • 正如我的问题中已经提到的,当我以“tomcat”用户身份手动创建任何文件(使用“touch”命令)时,umask 会受到尊重。但是当tomcat(以相同的“tomcat”用户运行)创建日志文件时,它不会被尊重。奇怪!!
      • @janeshs 您是否发现 Tomcat 进程不遵守操作系统 umask 值的原因?
      • @dextro67 - 是的,我验证了 Tomcat 不遵守操作系统 umask 值的原因。基本上,如果未设置自定义环境变量 UMASK(全部大写),它会强制覆盖 OS umask。请参阅下面 catalina.sh 中的覆盖代码:# Set UMASK unless it has been overridden if [ -z "$UMASK" ]; then UMASK="0027" fi umask $UMASK
      • 如果你要为 tomcat 设置任何环境变量,你应该在 ./bin/setenv.sh
      猜你喜欢
      • 2015-02-23
      • 1970-01-01
      • 2012-04-03
      • 2016-11-27
      • 2017-01-29
      • 2018-08-15
      • 2010-09-21
      • 2011-04-13
      • 2011-06-08
      相关资源
      最近更新 更多