
標題說明了一切。我需要 Tomcat 的 webdav servlet 來建立具有 rw-rw-r-- 權限的文件,但它一直將其建立為 rw-r--r--。我嘗試在 /etc/profile 中設定 umask,但沒有幫助(儘管手動建立的新檔案具有所需的權限設定)。根據 /etc/passwd,執行 Tomcat 的使用者將 /etc/false 作為 shell,並且在其主目錄中沒有 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
CATALINA_HOME=/usr/local/tomcat
CATALINA_BASE=/web/tomcat/catalina-base/myapp
JAVA_HOME=/usr/local/java
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CATALINA_BASE/lib
JAVA_OPTS="-Xms1024m -Xmx1024m"
烏瑪斯克=0002
匯出 JAVA_HOME CATALINA_HOME CATALINA_BASE JAVA_OPTS LD_LIBRARY_PATH UMASK
$CATALINA_HOME/bin/startup.sh &
退出$?
....................
變數 UMASK 完成您正在尋找的工作。
希望這可以幫助