前言
java中需要生成文件到指定的sftp目录中,提供给其他的系统或者用户读取文件,但是在程序中生成的文件或者创建的目录到sftp中会显示没有权限去读/写,这是因为tomcat中配置文件导致
解决方案
一、 部署在tomcat中项目:
如果是部署在tomcat中的项目,需要生成文件到sftp目录,但是生成的文件没有权限,比较简单,直接修改tomcat配置文件即可
-
修改tomcat/bin/catalina.sh
vi apache-tomcat-8.5/bin/catalina.sh
-
找到
UMASK="0027"
这一行,修改为UMASK="0022"
说明:
-0027
是tomcat默认的权限配置,因为权限是由rwx(读取执行)组成,分别代表的数字为:421, 默认的配置是0027
表示root用户拥有所有权限,当前用户拥有rx权限,其他用户没有权限,因为最后一个数为7,表示421中的一个权限都没有分配给其他用户
-0022
表示给其他用户的读和执行的权限,所以这样设置之后,sftp的用户就可以读取生成的文件和文件夹了 -
重启tomcat
二、部署在docker中的项目