有关Tomcat 8.0版本文件上传后无权限访问的问题
2017-08-29 14:07
1671 查看
之前在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官网文档及相关英文论坛里发现了踪迹。
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官网文档及相关英文论坛里发现了踪迹。
相关文章推荐
- 有关Tomcat 8.5版本文件上传后无权限访问的问题
- 有关Tomcat 8.5版本文件上传后无权限访问的问题
- 关于xcode8.0隐私权限上传打包文件在构建版本不显示的问题
- Hadoop HDFS 文件访问权限问题导致Java Web 上传文件到Hadoop失败的原因分析及解决方法
- java上传文件到磁盘中,设置tomcat虚拟路径进行访问,解决重布项目图片消失问题
- 更改apache(2.2.17版本)默认文件路径引起的无权限访问问题的解决方法
- 用eclipse创建tomcat项目后,文件上传目录路径问题
- 局域网内共享文件 提示没有访问权限的问题-转载于http://www.pcdog.com/a/29/10/i232880.html
- Tomcat中有关配置context访问问题
- [导入]IIS+Tomcat整合上传以及静态文件缓存问题!
- 关于MMC不能打开文件C:\Program Files\Microsoft SQL Server\80\Tools\Binn\SQL Server Enterprise Manager.MSC可能是由于文件不存在,不是一个MMC控制台,或者用后来的MMC版本创建。也可能你没有访问此文件的足够权限
- 有关 文件上传后乱码问题
- XP中如何解决备份文件夹拒绝访问问题(也可解决普通用户访问管理员用户的文件的权限问题)
- win7 web开发遇到的问题-由于权限不足而无法读取配置文件,无法访问请求的页面
- 文件上传有关问题(含代码)
- XP中如何解决备份文件夹拒绝访问问题(也可解决普通用户访问管理员用户的文件的权限问题)
- 局域网内共享文件 提示没有访问权限的问题
- MMC不能打开文件C:\WINDOWS\system32\devmgmt.msc。这可能是由于文件不存在,不是一个MMC控制台,或者用后来版本的MMC创建 。也可能是由于您没有访问此文件的足够权限
- 在Tomcat6.0+IIS6.0+Windows Server2003环境下,JSP(Common-FileUpload)文件上传的问题
- 关于MMC不能打开文件C:\Program Files\Microsoft SQL Server\80\Tools\Binn\SQL Server Enterprise Manager.MSC可能是由于文件不存在,不是一个MMC控制台,或者用后来的MMC版本创建。也可能你没有访问此文件的足够权限