不知道大家公司生产服务器中tomcat是怎么启动的,是否做了降权启动;做了降权启动即使程序或者tomcat有bug,黑客利用漏洞获取到服务器权限,也是非root权限,我们可以给启动tomcat的用户尽量小得权限,就像nginx以非root用户启动一样。

开始做的时候小编首先想到的是直接创建一个普通用户,启动tomcat时切换到这个用户下面,进行启动就好了,但是每次都要切换还是有点小繁琐的;有人告诉小编写一个脚本就可以了啊,但是小编还是有点懒,不想写脚本,终于小编发现了tomcat其实是有自带降权启动功能的,下面就与小编一起看看是怎么做的吧!

[root@localhost bin]# pwd

/usr/local/tomcat/tomcat/bin

[root@localhost bin]# tar -zxf commons-daemon-native.tar.gz#tomcat自带的

[root@localhost bin]# cd commons-daemon-1.0.15-native-src/

[root@localhost commons-daemon-1.0.15-native-src]# cd unix/

[root@localhost unix]# sh support/buildconf.sh

support/buildconf.sh: configure script generated successfully

[root@localhost unix]# ./configure --with-java=/opt/jdk

[root@localhost unix]# make

[root@localhost unix]# cp jsvc /usr/local/tomcat/tomcat/bin/

[root@localhost unix]# cd /usr/local/tomcat/tomcat/bin/

[root@localhost bin]# mv commons-daemon-1.0.15-native-src/ commons-daemon-1.0.15-native-src.bak

[root@localhost bin]# vim daemon.sh

export JAVA_HOME=/usr/local/tomcat/java

export TOMCAT_HOME=/usr/local/tomcat/tomcat

export CATALINA_HOME=/usr/local/tomcat/tomcat

export CATALINA_BASE=/usr/local/tomcat/tomcat

export CATALINA_TMPDIR=/usr/local/tomcat/tomcat/temp

JAVA_OPTS="-Xms1024m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m"

[root@localhost bin]# ./daemon.sh

Unknown command: `'

Usage: daemon.sh ( commands ... )

commands:

run Start Tomcat without detaching from console

start Start Tomcat

stop Stop Tomcat

version What version of commons daemon and Tomcat

are you running?

[root@localhost bin]# ./daemon.sh start

[root@localhost bin]# lsof -i :8080

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

jsvc 4726 tomcat 51u IPv6 28740 0t0 TCP *:webcache (LISTEN)

[root@localhost bin]# netstat -tunlp | grep jsvc

tcp6 0 0 :::8080 :::* LISTEN 4726/jsvc.exec

tcp6 0 0 :::8009 :::* LISTEN 4726/jsvc.exec

OK,是不是很简单,其实这样做就是以非root用户启动了。这种方式启动的用户默认是tomcat,你也可以修改启动tomcat的用户,同样是在daemon.sh里面进行修改的,大家可以自己尝试一下。

好了,剩下的就看大家的了,说出来不怕大家笑话小编,小编之前做这个tomcat降权,足足做了一周,大家现在看是不是很简单,其实不然,小编当时进行了各种测试,包括tomcat各种优化,其实细心的同学应该已经注意到了,上面启动tomcat只有两个端口的,正常不是三个吗?还有就是大家是否修改过tomcat的SHUTDOWN呢?等等吧,在这里就是想告诉大家,即使一件小事,我们也有很多是需要做的。

最后小编提到的问题,大家可以先自己想想,有什么不明白的,可以联系小编哦!

查看原文 >>
相关文章