Linux系统中JAVA创建文件后权限不足的问题,无法设置权限的问题_tianlong1569的专栏-CSDN博客_java创建文件夹权限不够

最近在Linux系统中通过tomcat部署项目后,由于程序有上传文件功能。而上传后的却无法查看文件(通过createNewFile创建)。后来发现文件的权限为-rw-r-----,而文件的拥有者是root,这样就只有拥有者有root用户组的拥有读取权限。

通过研究发现,Linux通过umask变量来控制创建文件的默认权限问题。我们知道在Linux系统规定,创建文件的最高权限为666,而创建文件夹的最高权限为777,系统通过变量umask来控制创建文件的权限问题。如果当umask的值为022时,则创建的文件权限为644,即权限是通过最高权限减去umask的值来控制的。

但Linux系统umask的默认值是0022,也就是说创建的文件应该是644的权限,而上传的文件却是640的权限。后来通过对查询Tomcat发现从tomcat8开始,catalina.sh文件中有下面几行代码

# Set UMASK unless it has been overriddenif [ -z "$UMASK" ]; then    UMASK="0027"fiumask $UMASK

也就是说tomcat8将umask的值进行了修改,也就造成了上传文件权限的问题(这个问题从tomcat8才有,tomcat8以下版本是没有这个问题)。

因此将代码修改为

# Set UMASK unless it has been overriddenif [ -z "$UMASK" ]; then    UMASK="0000"fiumask $UMASK

问题解决


Original url: Access
Created at: 2020-07-29 17:21:10
Category: default
Tags: none

请先后发表评论
  • 最新评论
  • 总共0条评论