Linux7 非root 使用tomcat8
- 系统环境 cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core)
- tomcat安装部署 参考文档: (1)基于Centos6的tomcat部署 (2)想更深了解tomcat启动原理,请参考Tomcat启动脚本catalina.sh---解读 (3)配置tomcat
- 为什么使用非root账户 root用户启动tomcat有一个严重的问题,那就是tomcat具有root权限。 这意味着你的任何一个页面脚本(html/js)都具有root权限,所以可以轻易地用页面脚本 修改整个硬盘里的文件!所以最好不要使用root启动tomcat。
- 非root账户运行tomcat
#创建一个普通账户
useradd -d /data/tuser -m tuser
#编译安装tomcat服务守护程序
cd /usr/local/tomcat8/bin
#解压
tar vzxf commons-daemon-native.tar.gz
cd commons-daemon-1.1.0-native-src/unix/
#安装前的配置及校验
./configure
#指定JDK目录
##说明:我这里已经定义了JDK的目录了,信息如下:
cat /etc/profile
##java path
export JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:$PATH
##tomcat path
export CATALINA_HOME=/usr/local/tomcat8
export PATH=$JAVA_HOME/bin:$CATALINA_HOME/bin:$PATH
#如果出现如下错误提示,说明未设置JAVA_HOME变量
*** Java compilation tools ***
checking for JDK location... configure: error: Java Home not defined. Rerun with --with-java=... parameter
#如果看到以下信息,就可以编译/安装了
*** All done ***
Now you can issue "make"
#编译和安装
make
#执行make后会生成一个jsvc文件,将其复制到tomcat的bin目录
cp jsvc /usr/local/tomcat8/bin
#修改启动脚本
vim /usr/local/tomcat8/bin/daemon.sh
找到如下内容
test ".$TOMCAT_USER" = . && TOMCAT_USER=tomcat
#Set JAVA_HOME to working JDK or JRE
#JAVA_HOME=/opt/jdk-1.6.0.22
修改TOMCAT_USER=tomcat,"tomcat"为运行tomcat的用户,本文创建的用户为tuser,即tomcat更改为tuser。
去除JAVA_HOME前的注释(即“#”号),并设置为JDK的所在目录(JAVA_HOME=/usr/local/java)。
#更改文件所有者
chown -R tuser:tuser /usr/local/tomcat8
#赋予用户执行权
chmod a+x /usr/loacl/tomcat8/bin/daemon.sh
- tomcat启动命令
#后台运行
/usr/local/tomcat8/bin/daemon.sh start
或daemon.sh start
#前台运行
/usr/local/tomcat8/bin/daemon.sh run
或daemon.sh run
#停止
/usr/local/tomcat8/bin/daemon.sh stop
或daemon.sh stop