Tomcat8如何解決上傳文件的可讀許可權問題
- 2019 年 11 月 28 日
- 筆記
描述
使用springmvc做了一個文件上傳的功能,上傳到nginx目錄下的一個文件夾,但是通過目錄訪問的時候卻報403的錯誤

圖片.png 去伺服器查看了一下文件的許可權,發現沒有可讀許可權,於是定位了問題,上傳的文件全都沒有可讀許可權。
為什麼沒有可讀許可權
網上查閱資料發現,linux默認umask為022,對應許可權為755,其它用戶可讀可執行。可以vim /etc/profile
,搜索umusk關鍵字查看
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then umask 002 else umask 022
而tomcat8默認umask為027,對應許可權為750,也就是說其它用戶連可讀的許可權都沒有。 可打開catalina.sh文件,搜索umask查看。
# Set UMASK unless it has been overridden if [ -z "$UMASK" ]; then UMASK="0027" fi umask $UMASK
在catalina.sh文件的開篇可以看到
# UMASK (Optional) Override Tomcat's default UMASK of 0027
於是問題有了答案 登錄到伺服器,進入到tomcat的bin目錄下
vim catalina.sh 輸入i,進入編輯模式,將umask改為0022 :wq(保存退出)
可以看到

3b0b9d5dc0f2d2115073293aeee4331.png 接下來重啟tomcat,重新上傳圖片即可香油可讀許可權。