普通用户启动tomcat服务

目的说明

由于直接使用root用户启动tomcat的话,意味着tomcat中的每个jsp脚本都具有root权限,一旦代码中存在漏洞,将会直接获取到root用户的权限,对系统而言是很危险的,故使用普通用户的权限运行tomcat的服务是非常必要的。

操作步骤:

创建普通用户,并授予该用户读取tomcat目录的权限

1
2
3
4
5
6
7
8
9
10
11
# 创建普通用户tomcat,用于启动tomcat
useradd -u 1000 tomcat

# 将应用对应的tomcat目录授权给tomcat用户
chown -R tomcat:tomcat /data/ztjy/51110

# 禁止其他用户读取/data/ztjy/51110/*目录的其子目录权限
chmod -R o-rwx /data/ztjy/51110/*

# 允许其他用户查看/data/ztjy/51110/logs/目录及其子目录的权限
chmod -R o+rx /data/ztjy/51110/logs/

启动tomcat

直接使用普通用户启动tomcat

1
2
su - tomcat
sh /data/ztjy/51110/bin/startup.sh

注:非root用户无法直接使用该方法启动1024以内的端口,故若tomcat端口使用了1024以内的需要修改端口号,否则将会出现报java.net.BindException: Permission denied <null>:80的错误。不方便修改端口的请看通过jsvc服务启动tomcat。

通过jsvc服务启动tomcat

JSVC是apache出的所谓common daemon的一个工具套件,他利用一个daemon程序,从而使tomcat这样的程序能在开机的时候自动启动,而且能使tomcat被 chkconfig管理。
tomcat的bin目录里已经自带了jsvc的源码,需要手动进行编译、安装并配置。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
cd /data/ztjy/51110/bin
# 解压jsvc源码包
tar zxf commons-daemon-native.tar.gz
cd commons-daemon-1.0.15-native-src/unix/
# 编译安装
./configure && make
# 将生成的jsvc拷贝到bin目录下
cp jsvc /data/ztjy/51110/bin/
# 设置环境变量
vi /data/ztjy/51110/bin/setenv.sh
#(创建文件并添加如下内容,JAVA_HOME和JAVA_OPTS需要根据情况进行修改)
JAVA_HOME=/usr/java/jdk1.7.0_67
TOMCAT_USER=tomcat
JSVC_OPTS='-jvm server'
JAVA_OPTS='-server -Xms512m -Xmx512m -XX:PermSize=256M -XX:MaxNewSize=256m -XX:MaxPermSize=256m -Djava.awt.headless=true'
vi /data/ztjy/51110/bin/daemon.sh
# 在第二行添加如下内容
# chkconfig: - 86 14
# description: 51110 daemon
# processname: 51110
# 对启动脚本创建软链接(便于使用chkconfig进行管理)
ln –s /data/ztjy/51110/bin/daemon.sh /etc/init.d/51110
# 添加服务到chkconfig,并使用service命令启动51110的tomcat服务
chkconfig –add 51110
service 51110 start
# 查看51110的tomcat服务状态
service 51110 version
Still running according to PID file /data/ztjy/51110/logs/catalina-daemon.pid, PID is 25123
jsvc (Apache Commons Daemon) 1.0.15-dev
Copyright (c) 1999-2011 Apache Software Foundation.
java version "1.7.0_67"
Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)
commons daemon version "1.0.15-dev"
commons daemon process (id: 31998, parent: 31997)
Server version: Apache Tomcat/7.0.57
Server built: Nov 3 2014 08:39:16 UTC
Server number: 7.0.57.0
OS Name: Linux
OS Version: 2.6.32-431.23.3.el6.x86_64
Architecture: amd64
JVM Version: 1.7.0_67-b01
JVM Vendor: Oracle Corporation
# 停止51110的tomcat服务
service 51110 stop
坚持原创技术分享,您的支持将鼓励我继续创作!
0%