去年,在公司的某一weblogic上部署的web应用上传文件后却没有读的权限。因为weblogic在Linux上部署,上传文件是mount到了一台安装了NFS的Windows Server上。
当时本人刚毕业,没多少经验,查了很久原因才查到原因是出在了weblogic上。只要修改weblogic的启动shell脚本或者weblogic 节点启动shell脚本中的umask即可。
linux中,weblogic上传的文件或者创建的目录,默认只有自己读或者组员读,但web访问目录时,通常需要执行权限,所以需要在weblogic启动脚本配置,找到startWeblogic.sh,vi它,修改umask的值即可修改默认创建文件或文件夹的权限。默认情况下创建文件和目录,文件是不具有X权限,也就是执行权限,目录具有X权限。
1、umask
含义:用户创建文件或目录的掩码
用途:创建文件或目录用此umask的值来生成文件或目录的权限具体如下
文件默认权限=666-$umask 按位减
目录默认权限=777-$umask 按位减
含义:用户创建文件或目录的掩码
用途:创建文件或目录用此umask的值来生成文件或目录的权限具体如下
文件默认权限=666-$umask 按位减
目录默认权限=777-$umask 按位减
Attention:
管理员模式下,umask的值是022,管理员用户 UID 小于等于99。
普通用户模式下,umask的值是002,普通用户 UID 大于等于100。
如果将umask设置为027,创建文件时,会出现文件权限为64(-1),此时会将负数置为0 变为640。如果将umask设置为037,创建文件时,会出现文件权限为630,其中3代表文件属组有写和执行权限,但是文件默认情况下不能具有执行权限,通过属组权限加1变为640来避免此情况的发生;创建目录时,会出现目录权限为740,其中4代表目录属组只有读权限,默认情况下目录是具有执行权限的,但是不会修改,目录权限依然是740。
管理员模式下,umask的值是022,管理员用户 UID 小于等于99。
普通用户模式下,umask的值是002,普通用户 UID 大于等于100。
如果将umask设置为027,创建文件时,会出现文件权限为64(-1),此时会将负数置为0 变为640。如果将umask设置为037,创建文件时,会出现文件权限为630,其中3代表文件属组有写和执行权限,但是文件默认情况下不能具有执行权限,通过属组权限加1变为640来避免此情况的发生;创建目录时,会出现目录权限为740,其中4代表目录属组只有读权限,默认情况下目录是具有执行权限的,但是不会修改,目录权限依然是740。