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的问题

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容