Apache与Tomcat用户不统一造成的权限问题

本文使用系统环境:Centos 6.5

由于网站需要在线编辑office,使用了pageoffice程序;

网站语言:PHP

pageoffice:java

客户端在登录网站并进行操作时使用的是apache用户,当用户编辑office时就需要调取Tomcat运行的pageoffice程序;

Tomcat是由root用户运行的,所以当用户编辑完成并提交至服务器时,文件所有者时root用户,apache用户则没有权限对其进行操作;

这就造成了office文件不能下载并编辑。

解决方法:

方法一:使用jsvc配置Tomcat以apache用户运行

下载:

  wget http://mirror.bit.edu.cn/apache/commons/daemon/source/commons-daemon-1.0.15-native-src.tar.gz

解压并安装:

  tar -zxvf commons-daemon-1.0.15-native-src.tar.gz

  cd commons-daemon-1.0.15-native-src

  cd unix/

  ./configure --with-java=JAVA路径

  make

  cp jsvc /Tomcat路径/bin/

修改启动脚本:

  vim /Tomcat路径/bin/daemon.sh

在文件靠前位置的注释中加入下面的内容

  # chkconfig: - 80 20

找到下面内容:

  test ".$TOMCAT_USER" = . && TOMCAT_USER=tomcat

  # Set JAVA_HOME to working JDK or JRE
  #JAVA_HOME=/usr/lib/jvm/java-1.7.0

改成:

  test ".$TOMCAT_USER" = . && TOMCAT_USER=apache    //‘apache’为apache用户

  # Set JAVA_HOME to working JDK or JRE
  #JAVA_HOME=/usr/lib/jvm/java-1.7.0     //Java路径为自己的配置路径

修改相关目录和文件权限

  chown -R apache:apache /usr/local/tomcat

现在就可以使用这个脚本来启动Tomcat了

  ./daemon.sh start

查看Tomcat进程

  ps -ef |grep tomcat

这时就可以看到Tomcat的运行用户发生了变化

方法二:修改apache用户组

由于下载office只需要“读”的权限就可以;

在系统中查看到pageoffice创建的文件同组的人拥有读的权限;

这时只需要将apache用户加入root组就可以

  usermod -a -G root apache

重启apache

  service httpd restart

这时文件使用正常。

 

 

posted @ 2017-10-11 14:52  转角处  阅读(577)  评论(0编辑  收藏  举报