关于Tomcat8.5版本文件上传后无访问权限的问题,已解决

问题呈现:

关于Tomcat8.5版本文件上传后无访问权限的问题,已解决_第1张图片

浏览器提示说 :您没有访问/fdld/userfiles/fileupload/201904/1113703420341157890.jpg的权限。

服务器无法读取htaccess文件,拒绝安全访问。

查看了linux下的文件权限,

只有w权限,没有 r:读权限 ,因此需要修改tomcat的配置:

解决方案如下所示:

打开/usr/local/src/apache-tomcat-8.5.35/bin目录,打开catalina.sh文件,编辑如下所示的内容:

umask 002 对应文件权限664,文件夹权限775;umask 022对应文件权限644,文件夹权限755。可见都有读取访问权限的。在默认情况下,tomcat所建目录及文件应该用到的是umask 022,但为何实际情况并非如此呢?

(按照结果看tomcat 8.5下上传文件的默认权限为umask 027)

问题到这里,排除下来可能的原因并不多了,因为之前在其他机器上使用tomcat 7的时候是上传后访问没问题的,所以又拿tomcat 7在这台服务器上测试了一下,以判断是不是tomcat 8.5自身的问题。结果发现,在同台服务器上tomcat 7上传后访问没问题。最终定位为题是在tomcat 8.5上。

接下来,抱着试一试的心态,在tomcat 8.5的catalina.sh中搜索 umask关键字(因为我始终有个直觉这和默认权限设置有关,结果证实这次的判断是准确的),很庆幸,原因立马就定位到了。

关于Tomcat8.5版本文件上传后无访问权限的问题,已解决_第2张图片

将UMASK的值改为 0022,重启tomcat,问题解决,

 

需要注意的是,如果问题没有解决,你就要查看你访问的文件的父级文件夹,查看文件夹的权限是否满足读权限,否则只有文件有读权限,所在文件夹没有读权限,依然会出现403问题。

你可能感兴趣的:(关于Tomcat8.5版本文件上传后无访问权限的问题,已解决)