服务器上java应用(中间件是tomcat9,使用ucap用户启动的tomcat9)有一个上传功能,文件上传后的权限是
-rw-r-----
导致nginx(使用root启动)没权限读取上传的文件,报403错误
但是直接用ucap用户创建文件test.txt,则权限如下
-rw-r–r--
这与用户权限掩码umask设置有关
目录的最大权限用数字法表示 777 用模式法表示就是 rwxrwxrwx
文件的最大权限用数字法表示 666 用模式法表示就是rw-rw-rw-
当前用户umask为022,所以创建文件权限为666-022=644
Tomcat从tomcat8开始,catalina.sh文件中有下面几行代码
# Set UMASK unless it has been overridden
if [ -z "$UMASK" ]; then
UMASK="0027"
fi
umask $UMASK
所以导致上传的文件权限是666-027=640
只需要修改此处为
# Set UMASK unless it has been overridden
if [ -z "$UMASK" ]; then
UMASK="0022"
fi
umask $UMASK
重启tomcat服务即可