部署远程服务器时候, 基本都是用root账户登录, 习惯上会直接使用root启动tomcat.
这样其实是有风险的, 黑客获取的权限即容器的权限,
如果容器运行权限就很高,被攻破黑客即可获取很高的权限,造成破坏面及风险更大
本文介绍通过tomcat下的/bin/daemon.sh
方式启动tomcat
添加用户tomcat
groupadd -g 2000 tomcat
useradd -g 2000 -u 2000 tomcat
给目录授权
chown -R tomcat:tomcat /usr/local/tomcat
使用daemon.sh
启动
daemon.sh
文件中大约在90行左右指定了使用名为tomcat用户的用户执行.
所以我们直接运行daemon.sh即可, 不需要su -u tomcat ./daemon.sh
./bin/daemon.sh start
配置tomcat开机自启
// vim /etc/rc.d/rc.local
// 在文件最后添加
/usr/local/tomcat/bin/daemon.sh start
问题解决
使用daemon.sh
启动时候缺少jsvc
文件
从以下途径获取到jsvc
文件后, 复制到tomcat/bin
下, 赋予root执行权限再次启动即可
直接下载: jsvc.zip - 蓝奏云
上面下载链接的来源: tomcat启动异常jsvc:No such file or director
文件路径权限问题
如果项目中使用到的文件(如: 日志或其他文件等), 需要手动授权.
chown -R tomcat:tomcat /file/
自启失败
判断/etc/rc.d/rc.local
是否可执行
查看tomcat日志是否启动了tomcat
查看运行进程
若自动换行, 使用代码全屏查看
[root@hecs-26265 ~]# ps -ef | grep tomcat
root 881 1 0 10:42 ? 00:00:00 jsvc.exec -java-home /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.342.b07-0.hce2.x86_64/jre -user tomcat -pidfile /usr/local/tomcat/logs/catalina-daemon.pid -wait 10 -umask 0027 -outfile /usr/local/tomcat/logs/catalina-daemon.out -errfile &1 -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/commons-daemon.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dignore.endorsed.d
tomcat 885 881 69 10:42 ? 00:00:17 jsvc.exec -java-home /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.342.b07-0.hce2.x86_64/jre -user tomcat -pidfile /usr/local/tomcat/logs/catalina-daemon.pid -wait 10 -umask 0027 -outfile /usr/local/tomcat/logs/catalina-daemon.out -errfile &1 -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/commons-daemon.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dignore.endorsed.d
root 1900 1850 0 10:43 pts/0 00:00:00 grep --color=auto tomcat
一个root, 一个tomcat账户为正常.
相关介绍:
其余参考