tomcat非root用户启动

部署远程服务器时候, 基本都是用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执行权限再次启动即可

    • 文件路径权限问题

      如果项目中使用到的文件(如: 日志或其他文件等), 需要手动授权.

      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账户为正常.

    相关介绍:

  • 其余参考

posted @   Codorld  阅读(695)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示