程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2022-04(11)

2022-05(17)

2022-06(29)

2022-07(2)

2022-08(33)

解决服务器报错java.nio.file.AccessDeniedException: /opt/jeecg-boot/upload

发布于2023-02-04 17:53     阅读(249)     评论(0)     点赞(20)     收藏(0)


文章长了点,着急解决问题的朋友可以直接看最后(三)。

这两天线上的项目的下载文件这一块出问题了,本地调试了一下,发现文件能正常下载,说明不是代码的问题。

一、查看报错日志

看了一下服务器对应的报错日志,报如下错:

java.nio.file.AccessDeniedException: /opt/jeecg-boot/upload

原因:

网上搜索了一下,报这个异常是因为新挂载的硬盘目录没有写入权限,之前服务器的硬盘不够用了,这个硬盘路径是后面挂载上去的。

二、给文件权限

到服务器上的“/opt/jeecg-boot/”目录使用命令:ll ,查看一下“upload”目录的权限:

drwxr-xr-x 9 root root 176128 Jul 20 17:42 upload

1、文件信息解释

以【空格】划分,共显示了七列信息,从左至右依次为:权限、文件数、归属用户、归属群组、文件大小、创建日期、文件名称

(1)、权限

第一列,第一位表示文件类型,我这里的第一位是【d】

【d】:文件夹
【-】:普通文件
【l】:链接
【b】:块设备文件
【p】:管道文件
【c】:字符设备文件
【s】:套接口文件
【rwx 】:第 2-4 位表示这个文件的属主拥有的权限,这里的所有者是第三列的信息,也就是root。r 是读、w 是写、x 是执行 。
【r-x】:第 5-7 位表示和这个文件属主所在同一个组的用户所具有的权限 ,这里同一个组是第四列的信息,也是root。
【r-x 】:第 8-10 位表示其他用户所具有的权限。

(2)、硬链接数

第二列

对文件:一般是1,表示它本身。只有通过 “cd 文件的绝对路径” 这条指令来定位该文件。
对目录:起码是2,对于新建的文件夹,可以通过“cd 目录的绝对路径”或在目录中通过“cd …”进入目录。

关于硬链接详细的可以看这位大哥的博客,点击跳转

(3)、文件所有者

第三列,这里是root。

(4)、文件所有组

第四列,也是root。

(5)、文件大小

第五列,这里是176128。

(6)、文件最后一次被修改日期

第六列,这里是Jul 20 17:42。

(7)、文件名称

第七列,也是最后一列,这里是upload。

关于文件信息的介绍可以看这一篇博客,点击跳转

2、给目标文件夹权限

命令:

chmod 777 /opt/jeecg-boot/

解释:

读 r:4
写 w:2
执行 x:1
所以数字7:7=4+2+1=r+w+x,就是具有读、写、执行权限;6=4+2=r+w就是具有读、写权限,以此类推。下次修改权限改变对应的数字就可以了。
这里777是让所有者、同组其他用户、不同组用户都具有读、写、执行权限。

给了文件夹权限之后,还要重启服务器,不然命令是不生效的,我是直接用这个命令重启服务器,命令如下:

reboot

重启之后再次查看目标目录

drwxrwxrwx 9 root root 176128 Jul 20 17:42 upload

可以看到文件夹权限改过来了,重启之后那个错应该也可以解决了。

三、读写在文件子目录进行,给了父文件目录权限依旧报错

如果读写操作发生在目标目录的子目录,那么使用上面那个命令依旧会报那个错,说明子目录没有对应的权限,打开“upload”目录查看子目录信息:

drwxr-xr-x 6 root root 176128 Jul 16 11:23 img

可以看到子目录依旧只有写和执行的权限,这时需要用这个命令:

chmod 777 -R /opt/jeecg-boot/

解释:

-R 表示包含设置所有子目录,整个命令就是给“/opt/jeecg-boot/”目录以及子目录读写权限。

重启服务器,再次查看“img”目录

drwxrwxrwx 6 root root 176128 Jul 16 11:23 img

这下问题应该就解决了。

原文链接:https://blog.csdn.net/studio_1/article/details/125906424



所属网站分类: 技术文章 > 博客

作者:怎么没有鱼儿上钩呢

链接:http://www.javaheidong.com/blog/article/641192/e3c73a5c8e8fe5683ec0/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

20 0
收藏该文
已收藏

评论内容:(最多支持255个字符)




博客(new)

时间API在更新,传奇已经谢幕,但技术永远不死 这篇博文主要讲解一下JDK8 之后 时间相关 API 的变革,与 Java 源起两部分内容。JDK8 Oracle 更新了大量新特性,比如大家熟知的Stream和LambdaAPI,本文主要重点讲解:时间相关的API。

【Java 语法篇】Java 变量、八种基本数据类型及转换详解 Java 语法篇 —— Java 变量、八种基本数据类型介绍及八种数据类型间的转换详解。

Java生态/Redis中如何使用Lua脚本 mac上安装lualua语法简介Java中如何使用Lua脚本Redis中如何使用lua脚本

数据库的三大范式 关系型数据库中,关于数据表设计的基本原则,规则就称为范式,范式是我们在设计数据库结构过程中需要遵循的规则和指导方法。不过,有的时候为了提高某一些查询性能,我们还需要破坏范式规则,也就是反规范化。遵循业务优先的原则首先满足业务需求,再进来减少冗余有时候我们想要对查询效率进行优化,反范式化也是一种优化思路,我们可以通过在数据表中增加冗余字段来提高数据库的读性能。

JAVA开发(史上最完整追本溯源JAVA历史、发展和学习) 世界上最先进的技术往往是由于战争催生,在第二次世界大战中除了飞机,坦克和大炮的武器较量外,在隐秘战线的情报工作其实更为重要,在军队将领来往的电报中,为了防止军事情报的泄漏,不得不将电报进行加密传输。第二次世界大战,德国使用的顶顶有名的恩格玛加解密码机。那时号称无人能破解。

第十四届蓝桥杯校内模拟赛(第三期)Java组题解分享 蓝桥杯校内模拟赛第三期全部题解分享~

跟同事杠上了,Apache Beanutils为什么被禁止使用? 性能走势 --> spring cglib BeanCopier > spring copyProperties > apache PropertyUtils > apache BeanUtils

深入剖析 MVC 模式与三层架构 如果将 MVC 理解为一个大的概念,那么三层结构就是对 MVC 模式实现架构的思想,根据标准,我们将不同层的代码放在不同的包下,每一层里面职责单一,将来如果表现层的技术更新迭代,而业务逻辑层和数据访问层的代码则不用发生变化,大大提高的代码的可维护性。

java:自定义变量加载到系统变量后替换shell模版并执行shell java:自定义变量加载到系统变量后替换shell模版并执行shell

【Java】Java环开发环境安装 如果要从事Java编程,则需要安装JDK,如果仅仅是运行一款Java程序则JRE就满足要求。Java的安装包分为两类一类是JRE其就是一个独立的Java运行环境;一类是JDK其是Java的开发环境,不过在JDK的发布包中包含了一个独立的JRE,另外需要注意JDK本身就内置有JRE。