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
这时文件使用正常。