文档章节

有关Tomcat 8.5版本文件上传后无权限访问的问题

降龙罗汉
 降龙罗汉
发布于 2017/04/01 15:26
字数 634
阅读 277
收藏 1

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

输入图片说明

PS:tomcat通过root用户来启动。

在确定了nginx自身的没有配置问题之后,上Linux服务器查看所传文件,发现其上传目录下代码自动创建的目录权限是750,所上传文件权限是640。也就是说默认赋予的文件权限中其他用户的权限始终为0所导致。 默认权限与umask有关,因此怀疑是系统默认导致,但在查看系统默认配置(/etc/profile)后,发现默认配置没问题。

输入图片说明

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关键字(因为我始终有个直觉这和默认权限设置有关,结果证实这次的判断是准确的),很庆幸,原因立马就定位到了。

输入图片说明

UMASK=”0027”出现了!在按照目前的功能需求,将其改为UMASK=”0022”并重启tomcat 8.5后,文件上传后访问恢复正常。 至此,问题解决。期间,不是没想过通过百度或google解决问题,但是因为tomcat 8.5版本比较新,相关问题的中文文档就没有搜到。英文文档也是在定位了tomcat 8.5问题后搜索关键词tomcat8.5 umask后在tomcat官网文档及相关英文论坛里发现了踪迹。

官方文档链接: https://tomcat.apache.org/tomcat-8.5-doc/security-howto.html

关于umask的介绍:http://cn.linux.vbird.org/linux_basic/0220filemanager_4.php#umask

本文转载自:http://dwz.cn/5FqZ4t

下一篇: JVM调试
降龙罗汉

降龙罗汉

粉丝 217
博文 46
码字总数 17384
作品 0
深圳
程序员
私信 提问
加载中

评论(1)

英强
英强
为龙少的细心赞一个!
在阿里云上打造属于你自己的APEX完整开发环境 (安装CentOS, Tomcat, Nginx)

Oracle APEX 系列文章3:在阿里云上打造属于你自己的APEX完整开发环境 (安装CentOS, Tomcat, Nginx) 本文是钢哥的Oracle APEX系列文章中的第三篇,完整 Oracle APEX 系列文章如下: Oracle A...

youfen
2018/07/27
71
0
Oracle APEX 系列文章8:如何从 APEX 5.1.4 升级到最新的 APEX 18.1

本文是钢哥的 Oracle APEX 系列文章的第8篇,完整文章目录如下: Oracle APEX 系列文章1:Oracle APEX, 让你秒变全栈开发的黑科技 Oracle APEX 系列文章2:在阿里云上打造属于你自己的APEX完...

kenny.wang
2018/05/29
0
0
javaweb网站安全问题web网站安全问题防范安全部署tomcat方法

Apache tomcat是JAVA开发,JSP运行首选的web环境,国内很多网站,以及平台 都在使用 tomcat 环境来运行网站,高效,稳定,安全,赢得了国内许多客户。 tomcat 该如何安全设置与部署呢? SINE...

网站安全
2018/06/08
0
0
linux 用docker 搭建tomcat后访问页面404?

今天用阿里云服务器docker搭建tomcat:8.5版本后 运行tomcat容器 浏览器无法访问 我的服务器系统centos 请大佬们帮忙看下什么问题? 我的执行命令如下: 下载 docker pull tomcat:8.5 运行 do...

zb1484721475624
09/18
135
5
Linux Apache Tomcat 8.5 安装与配置

生产环境: Server version: Apache Tomcat/8.5.16CentOS Linux release 7.3.1611 (Core) x86-64 1.Apache Tomcat/8.5.16依赖jre7及以上版本,不过jdk高版本已经包含jre,关于jdk&jre的安装请......

孤鸿子
2017/12/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

golang-字符串-地址分析

demo package mainimport "fmt"func main() {str := "map.baidu.com"fmt.Println(&str, str)str = str[0:5]fmt.Println(&str, str)str = "abc"fmt.Println(&s......

李琼涛
今天
4
0
Spring Boot WebFlux 增删改查完整实战 demo

03:WebFlux Web CRUD 实践 前言 上一篇基于功能性端点去创建一个简单服务,实现了 Hello 。这一篇用 Spring Boot WebFlux 的注解控制层技术创建一个 CRUD WebFlux 应用,让开发更方便。这里...

泥瓦匠BYSocket
今天
6
0
从0开始学FreeRTOS-(列表与列表项)-3

FreeRTOS列表&列表项的源码解读 第一次看列表与列表项的时候,感觉很像是链表,虽然我自己的链表也不太会,但是就是感觉很像。 在FreeRTOS中,列表与列表项使用得非常多,是FreeRTOS的一个数...

杰杰1号
今天
8
0
Java反射

Java 反射 反射是框架设计的灵魂(使用的前提条件:必须先得到代表的字节码的 Class,Class 类 用于表示.class 文件(字节码)) 一、反射的概述 定义:JAVA 反射机制是在运行状态中,对于任...

zzz1122334
今天
6
0
聊聊nacos的LocalConfigInfoProcessor

序 本文主要研究一下nacos的LocalConfigInfoProcessor LocalConfigInfoProcessor nacos-1.1.3/client/src/main/java/com/alibaba/nacos/client/config/impl/LocalConfigInfoProcessor.java p......

go4it
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部