# 前言:为什么要使用非root用户运行tomcat
root用户启动tomcat有一个严重的问题,那就是tomcat具有root权限。
这意味着你的任何一个页面脚本(html/js)都具有root权限,所以可以轻易地用页面脚本 修改整个硬盘里的文件!
所以最好不要使用root启动tomcat。
# 正文:非root用户运行tomcat
## tomcat安装
略... 本文安装目录为 /opt/tomcat8
## 创建用户
#创建用户组 dev
groupadd dev#创建用户 tomcat
useradd -g dev -s /usr/sbin/nologin tomcat
说明:-s /usr/sbin/nologin 禁止该用户登录。
也可以在用户创建之后执行
useradd -g dev
usermod -s | --shell /usr/sbin/nologin username
## tomcat配置
### 编译安装服务守护程序
#cd /opt/tomcat8/bin/
#解压
tar vzxf commons-daemon-native.tar.gz#
cd /opt/tomcat8/bin/commons-daemon-1.0.15-native-src/unix/
#安装前的配置 及校验
./configure#若未配置$java_home需指定JDK目录
./configure --with-java=/opt/jdk_1.7
如果出现如下错误提示,说明未设置JAVA_HOME变量
*** Java compilation tools ***checkingfor 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 /opt/tomcat8/bin
### 修改启动脚本文件
vi /opt/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的用户,本文创建的用户即为tomcat,所以不用修改。
去除JAVA_HOME前的注释(即“#”号),并设置为JDK的所在目录(/opt/jdk_1.7)。
## 更改tomcat目录权限
#更改文件所有者
chown -R tomcat:dev /opt/tomcat8#赋予用户执行权
chmod a+x /opt/tomcat8/bin/daemon.sh
# 附:tomcat命令
#后台运行
/opt/tomcat/bin/daemon.sh start#前台运行
/opt/tomcat/bin/daemon.sh run#停止
/opt/tomcat/bin/daemon.sh stop
#创建符号链接/软连接
ln -s /opt/tomcat8/bin/daemon.sh /etc/init.d/tomcat8#tomcat8添加至系统服务
chkconfig –-add tomcat8#启动/停止
service tomcat8 start/stop