tomcat非root用户启动

tomcat,root,用户,启动 · 浏览次数 : 179

小编点评

**Tomcat 用户授权配置** 使用 `daemon.sh` 命令在 Tomcat 中添加用户并设置权限。以下是步骤: 1. **打开 `tomcat/conf/tomcat.properties` 文件**。 2. 在 `tomcat.properties` 中添加以下配置: ```properties tomcatgroupadd -g 2000 tomcatuseradd -g 2000 -u 2000 tomcat ``` 3. **重启 Tomcat 服务**: ```bash service tomcat restart ``` 4. **验证用户是否存在**: ```bash cat /etc/passwd | grep tomcat ``` **使用 `daemon.sh` 命令启动 Tomcat** 1. **打开 `tomcat/bin/daemon.sh` 文件**。 2. 在 `daemon.sh` 中添加以下配置: ``` #!/bin/sh # 使用名为 tomcat 用户执行 su -u tomcat ./daemon.sh./bin/daemon.sh start ``` 3. **运行 `daemon.sh` 文件**: ```bash ./daemon.sh start ``` **注意**: * `daemon.sh` 文件需要具有可执行权限(`chmod +x daemon.sh`)。 * `./daemon.sh` 文件中的 `start` 命令用于启动 Tomcat 服务。 * 这将创建一个名为 `catalina-daemon.pid` 的 pid 文件,记录 Tomcat 的运行状态。

正文

      部署远程服务器时候, 基本都是用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账户为正常.

    相关介绍:

  • 其余参考

与tomcat非root用户启动相似的内容:

tomcat非root用户启动

部署远程服务器时候, 基本都是用root账户登录, 习惯上会直接使用root启动tomcat. 这样其实是有风险的, 黑客获取的权限即容器的权限, 如果容器运行权限就很高,被攻破黑客即可获取很高的权限,造成破坏面及风险更大 本文介绍通过tomcat下的/bin/daemon.sh方式启动tomcat

[转帖]ELKStack入门篇(二)之Nginx、Tomcat、Java日志收集以及TCP收集日志使用

https://www.cnblogs.com/linuxk/p/9273160.html 1、收集Nginx的json格式日志 1.1、Nginx安装 View Code 1.2、配置logstash [root@linux-node1 ~]# vim /etc/logstash/conf.d/n

[转帖]Tomcat参数配置

前言 Tomcat是啥子,想必搜索tomcat配置的小伙伴应该无人不晓,无人不知了吧,但是我还是把官网看了一下有句话: Apache Tomcat software powers numerous large-scale, mission-critical web applications acro

[转帖]Tomcat 优雅关闭之路

本文首发于 vivo互联网技术 微信公众号链接:https://mp.weixin.qq.com/s/ZqkmoAR4JEYr0x0Suoq7QQ作者:马运杰 本文通过阅读Tomcat启动和关闭流程的源码,深入分析不同的Tomcat关闭方式背后的原理,让开发人员能够了解在使用不同的关闭方式时需要注意

[转帖]Tomcat maxKeepAliveRequests

https://www.cnblogs.com/turn2i/p/10480088.html 在写这个问题前,其实我是为了分析项目碰到的一个tcp close wait问题。这个问题就不在这里讲了。 造成的原因很简单,就是很多项目对httpclient的参数和使用都理解有问题,往往随便写一个或者使用

[转帖]Tomcat部署及优化

目录 一、Tomcat简介1 Tomcat的三大核心组件2 Java Servlet3 JSP全称Java Server Pages4 Tomcat 功能组件结构5 Tomcat 请求过程 二、Tomcat 服务部署1.关闭防火墙,将安装 Tomcat 所需软件包传到/opt目录下2.安装JDK3.

Tomcat--文件上传--文件包含--(CVE-2017-12615)&&(CVE-2020-1938)

Tomcat--文件上传--文件包含--(CVE-2017-12615)&&(CVE-2020-1938) 复现环境 采用Vulfocus靶场环境进行复现,搭建操作和文章参考具体搭建教程参考vulfocus不能同步的解决方法/vulfocus同步失败。 CVE-2017-12615 文件上传 漏洞简

Tomcat目录结构

Tomcat目录结构图如下: 1、bin目录 存放一些可执行的二进制文件,.sh 结尾的为linux下执行命令,.bat 结尾的为windows下执行命令。 catalina.sh:真正启动tomcat文件,可以在里面设置jvm参数。 startup.sh:启动tomcat(需事先配置好JAVA_H

Tomcat知识点整理

> 从学习起就开始接触tomcat, 解压, 点击运行, 然后放文件夹里面会自动部署, 可以通过ip访问. 在这里主要记录一些tomcat相关的知识点 ## 配置文件解析(留位置) server.xml/web.xml等 - shutdown 8005 - 自动部署问题 - manager - 配置

Tomcat 与 JVM 中classpath的理解和设置总结

本文为博主原创,转载请注明出处: 1.介绍 classpath是java运行时环境搜索类和其他资源文件(比如jar\zip等资源)的路径。类路径告诉JDK工具和应用程序在哪里可以找到第三方和用户定义的类; 可以通过JDK工具(比如javac命令、java命令)后面的-classpath 参数设置cl