Tomcat 8.5版本文件上传后无权限访问的问题
之前在tomcat 7下文件上传后访问一直没问题,现在tomcat版本升到8.5,在测试文件http上传时,发现所传文件无法通过nginx访问了。
(Tomcat具体版本为8.5.11)

PS:tomcat通过root用户来启动。
在确定了nginx自身的没有配置问题之后,上linux服务器查看所传文件,发现其上传目录下代码自动创建的目录权限是750,所上传文件权限是640。
也就是说默认赋予的文件权限中其他用户的权限始终为0所导致。
默认权限与umask有关,因此怀疑是系统默认导致,但在查看系统默认配置(/etc/profile)后,发现默认配置没问题。
,文件夹权限;
,文件夹权限。
可见都有读取访问权限的。
在默认情况下,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关键字(因为我始终有个直觉这和默认权限设置有关,结果证实这次的判断是准确的),很庆幸,
原因立马就定位到了。

UMASK=”0027”出现了!在按照目前的功能需求,将其改为UMASK=”0022”并重启tomcat 8.5后,文件上传后访问恢复正常。
至此,问题解决。期间,不是没想过通过百度或google解决问题,但是因为tomcat 8.5版本比较新,相关问题的中文文档就没有搜到。
英文文档也是在定位了tomcat 8.5问题后搜索关键词tomcat8.5 umask后在tomcat官网文档及相关英文论坛里发现了踪迹。
Tomcat 8.5版本文件上传后无权限访问的问题的更多相关文章
- wildfly jsf 文件 上传后 可以下载 访问
// String aa = FacesContext.getCurrentInstance().getExternalContext().getRequestContextPath(); // lo ...
- JFinal中文件上传后会默认放置到WebContent的upload包下,但是tomcat会自动重启,当我们再次打开upload文件夹查看我们刚刚上传的文件时,发现上传的文件已经没有了。
JFinal中文件上传后会默认放置到WebContent的upload包下,但是tomcat会自动重启,当我们再次打开upload文件夹查看我们刚刚上传的文件时,发现上传的文件已经没有了.因为tomc ...
- HTML5 + AJAX ( jQuery版本 ) 文件上传带进度条
页面技术:HTML5 + AJAX ( jQuery) 后台技术:Servlet 3.0 服务器:Tomcat 7.0 jQuery版本:1.9.1 Servlet 3.0 代码 package or ...
- ASP.NET Core WEB API 使用element-ui文件上传组件el-upload执行手动文件文件,并在文件上传后清空文件
前言: 从开始学习Vue到使用element-ui-admin已经有将近快两年的时间了,在之前的开发中使用element-ui上传组件el-upload都是直接使用文件选取后立即选择上传,今天刚好做了 ...
- node express formidable 文件上传后修改文件名
//我是用php的思想来学习nodejs var express = require('express'); var router = express.Router(); var fs = requi ...
- IE下文件上传, SCRIPT5: 拒绝访问 问题
最近遇到一个比较奇葩的问题,某些ie浏览器在页面中上传文件时,无法上传.查看控制台报错: SCRIPT5: 拒绝访问. jquery-3.2.1.min.js, 行4 字符5725 .并且我的最新版I ...
- Tomcat PUT方法任意文件上传(CVE-2017-12615)
目录 漏洞复现: 漏洞利用工具: 漏洞环境:当 Tomcat运行在Windows操作系统,且启用了HTTP PUT请求方法(例如,将 readonly 初始化参数由默认值设置为 false),攻击者将 ...
- from表单文件上传后页面跳转解决办法
from表单上传文件,路径跳转后,又不能转发回来. 本人的一个解决办法是.返回一段html代码,浏览器解析后后退一步,回到原来的页面并刷新. return "<html>< ...
- vue中基于sortablejs与el-upload实现文件上传后拖拽排序
今天做冒烟测试的时候发现商品发布有一个拖拽图片排序功能没做,赶紧加上 之前别的同事基于 vuedraggable 实现过这个功能,我这里自己深度封装了 el-upload ,用这种方式改动很大,而且感 ...
随机推荐
- views视图
1.request.POST.get('.......') --radio 单选框 get()方法 从HTML中提取发过来的数据 1. 2. 3. 4. 2.request.POS ...
- 初识PIXI.js
由于项目需要接触到PIXI这个框架,故开始了一顿打头操作 由于目前PIXI的文档还是很少,而且大多数是英文文档这里提供几个PIXI的demo和文档 demo: http://47.99.120.179 ...
- Scrapy笔记08- 文件与图片
Scrapy笔记08- 文件与图片 Scrapy为我们提供了可重用的item pipelines为某个特定的Item去下载文件. 通常来说你会选择使用Files Pipeline或Images Pip ...
- A9G开发
巨坑 不支持联通 发短信 上电,准备好后使用 结束标志 取消换行 以16进制发 0x1a 实际测试 中间可以有很多行内容 短信内容结束换行 最后必须以 16进制 发送 0x1a 带和不带换行都可 ...
- [Algorithm] 53. Maximum Subarray
Given an integer array nums, find the contiguous subarray (containing at least one number) which has ...
- Java 解压 zip 文件
代码如下 package test_java; import java.io.File; import java.io.FileOutputStream; import java.io.IOExcep ...
- oracle拼接sql语句
示例: select 'select a.xh,a.dj,a.xzb from xsjbxxb a where a.xzb=' || chr(39) || a.xzb || chr(39) ...
- 依赖注入(DI)与控制反转(IOC)基础知识
依赖注入(DI)与控制反转(IOC)基础知识 一.什么是依赖注入? 依赖注入英文是Dependcy Injection简写DI,依赖注入会将所依赖的对象自动交由目标对象使用,而不是让对象自己去获取. ...
- 【java】获取客户端访问的公网ip和归属地
import com.alibaba.druid.support.json.JSONUtils; import org.thymeleaf.util.StringUtils; import javax ...
- [原创]开源跨平台大型网络端口扫描器K8PortScan(支持批量A段/B段/C段/IP列表)
0x000 K8PortScan Python版Cscan端口扫描器 Code: https://github.com/k8gege/K8PortScan K8portScan 1.0 Date: 2 ...