场景:linux下安装WebLogic服务器,FTP服务器,web应用。WebLogic的安装过程在此不涉及。
----------------------------------------------------------------------------------
背景:企业生产环境下 ,新建WebLogic用户,在WebLogic用户目录下安装WebLogic。测试环境下可以用root权限启动,但是,实际的生产环境下, WebLogic不能用root用户启动,需要普通用户来启动。启动以后,通过FTP服务器上传图片,web应用程序到FTP服务器上取图片。
实际操作:被这个问题烦扰了很久,接下来边讲解边给读者分享遇到的问题。
1.linux下新建用户user1,将应用程序部署在user1目录下,目录为/home/user1.
useradd user1
passwd user1
2.在测试的时候,我们是把图片放到/root目录下,但是生产环境不允许将图片放到/root目录下,因此新建用户userFTP,目录为/home/userFTP,FTP服务器上传的图片放到userFTP目录下
useradd userFTP
passwd userFTP
但是问题来了,web应用程序没法将图片传到从/home/userFTP取到web应用程序目录下。
3.对于第二步遇到的问题,解决方法是:新建用户组usergroup,user1和userFTP用户都添加到用户组usergroup中,user1和userFTP权限放开。
groupadd -g 600 usergroup
usermod -g usergroup -d /home/user1 user1
usermod -g usergroup -d /home/userFTP userFTP
chmod 777 user1
chmod 777 userFTP
4.经过以上操作,web应用程序能取到图片,但是,下一个问题来了,WebLogic不能用root用户来启动,然后就用WebLogic用户来启动WebLogic服务,注意,WebLogic用户是安装WebLogic时建的,因此也将这个用户添加usergroup组中
usermod -g usergroup -d /home/weblogic weblogic
5.这一步是关键,要将应用所在用户的属主改为WebLogic用户,否则应用还是不能取到图片。
chown -R weblogic:weblogic /home/user1
至此,问题解决。
如果要使该问题解决的比较完善,可以在添加一条chown -R weblogic:weblogic /home/userFTP,将userFTP用户也添加到WebLogic组,属主也改成了WebLogic。