标题说明了一切。我需要 Tomcat 的 webdav servlet 以 rw-rw-r-- 权限创建文件,但它一直以 rw-r--r-- 权限创建文件。我尝试在 /etc/profile 中设置 umask,但没有帮助(尽管手动创建的新文件具有所需的权限设置)。根据 /etc/passwd,运行 Tomcat 的用户的 shell 为 /etc/false,主目录中没有 bashrc。主机操作系统是 Debian。
答案1
虽然这完全是黑客行为,但请打开 tomcat/bin/startup.sh 并在其中设置“umask 0002”。您也可以在 catalina.sh 中执行此操作,您明白了 - 您甚至可以在 catalina.sh 中找到 java 启动的位置(搜索“catalina.out”)并将其直接放在该逻辑块上方,以确保当 java 在您的可怜的 CPU 上释放时它有效。
答案2
您可以为tomcat创建一个环境文件:
其中/usr/shared/tomcat8/bin
8 是适合您的 tomcat 版本,创建包含以下内容的 setenv.sh 文件:
#!/bin/bash umask 0002
答案3
我使用自定义脚本来启动和停止 tomcat,在调用标准脚本之前从中设置变量。
像这样:
/bin/sh #!/bin/sh 复制代码
CATALINA_HOME=/usr/local/tomcat
CATALINA_BASE = /网络/ tomcat / catalina-base / myapp
JAVA_HOME=/usr/local/java
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CATALINA_BASE/lib
JAVA_OPTS="-Xms1024m -Xmx1024m"
UMASK=0002
导出JAVA_HOME CATALINA_HOME CATALINA_BASE JAVA_OPTS LD_LIBRARY_PATH UMASK
$CATALINA_HOME/bin/startup.sh &
退出 $?
................
变量 UMASK 完成您正在寻找的工作。
希望这可以帮助