tomcat修改运行用户
前言
tomcat模式以是root用户运行的,这样就造成了一个很大的问题。tomcat拥有root的权限,如果tomcat进程被劫持,那么恶意攻击人员就会拥有系统的所有权限。所以需要修改掉tomcat的运行用户。
修改方法
正常启动tomcat的方法是通过bin目录下的catalina.sh或者bin目录下的start.sh脚本进行启动,但是这样启动的tomcat都是root用户。
- 在bin目录下还有一个daemon.sh的脚本,我们可以通过此脚本启动tomcat,不过首先需要现指定具体的运行用户,需要修改daemon.sh脚本中
test ".$TOMCAT_USER" = . && TOMCAT_USER=tomcat
的“TOMCAT_USER=“”为指定用户,此处为tomcat。当然,tomcat用户需要提前创建。同时需要修改JAVA_HOME=/usr/java/jdk1.8.0_101/
的"JAVA_HOME="为jdk环境目录; - 此时通过./daemon.sh start启动tomcat,结果发现报错了,提示找不到jsvc。jsvc是用来让以普通用户身份运行的java项目获取到一些root用户才有的权限,比如以低于1024的特权端口运行程序等。因为我的tomcat是直接解压安装的,不是编译安装的,一开始没有在bin目录下找到这个jsvc,后来发现在bin目录下有一个commons-daemon-native.tar.gz文件,解压此文件,然后直接运行./configure进行编译,然后make进行编译安装之后发现生成了jsvc文件。直接把此文件拷贝到tomcat的bin目录,然后执行./daemon.sh start,发现tomcat可以启动了,而且用户就是一定的tomcat用户。此时问题解决