Tomcat 8以上版本文件上傳后無權限訪問的問題

之前在tomcat 7下文件上傳后訪問一直沒問題,現在tomcat版本升到8.5,在測試文件http上傳時,發現所傳文件無法通過nginx訪問了:報錯 403 forbidden
反復確定nginx配置沒有問題,上服務器查看了一下文件,發現上傳目錄下自動創建的目錄權限750,文件權限640,也即:默認賦予的文件權限中其他用戶的權限始終為0。
因此懷疑是默認的環境變量里umask被改了,然而cat /etc/profile后發現:

if [ $UID -gt 199 ] && [ "id -gn" = "id -un" ]; then
umask 002
else
umask 022
fi

是沒有問題的。那么,就只能說tomcat的默認umask有問題,vim tomcat8.5/bin/catalina.sh,搜索umask關鍵字,發現:

if [ -z "$UMASK" ]; then
UMASK="0027"
fi
umask $UMASK

ok,破案了。
經檢查,tomcat7時代是沒有這個設定的,因此應該是tomcat出于安全性考慮增加的,但這個真是造成了困擾。
解決辦法:把umask的0027改為0022即可,即:保證目錄755文件644的權限就可以避免nginx以匿名用戶訪問(use nobody)時發生403 forbidden的問題

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容