部署远程服务器时候, 基本都是用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用户启动的更多相关文章

  1. 【出错记录】Tomcat非root用户启动无法拥有权限读写文件

    简单记录下,如有必要,将深入补充: 一.非root用户运行Tomcat及原因 由于项目中,为了安全需要,Tomcat将禁止以root形式启动,原因很简单,举个例子,一旦有人恶意将jsp文件透过某个别的 ...

  2. centos7新增用户并授权root权限、非root用户启动tomcat程序

    一.centos7新增用户并授权root权限 cat /etc/redhat-release查看centos版本号 1.禁用root账户登录 vim /etc/ssh/sshd_config 找到这一 ...

  3. 二进制方式安装docker(非root用户启动docker)

    二进制方式安装docker(非root用户启动docker) 一.下载安装包: 地址:https://download.docker.com/linux/static/stable/x86_64/ 这 ...

  4. 使用非root用户启动tomcat

    以下操作均为以root用户运行1.添加tomcat用户组 /usr/sbin/groupadd tomcat 2.添加tomcat用户,并限制登录 /usr/sbin/useradd -s /bin/ ...

  5. Ubuntu配置Tomcat9非root用户启动

    unix类系统的root用户具有极大的权利,所以很多时候我们不希望程序以root身份启动,这也就是配置Tomcat以指定身份(非root)启动的初衷,虽然也没人来攻击我的服务器,但本着学习学习的目的, ...

  6. 短网址资料-nginx非root用户启动-systemctl启动脚本-分割root权限

    https://www.cnblogs.com/aspnethot/articles/3492191.htmlhttps://www.cnblogs.com/aspnethot/articles/34 ...

  7. Centos6.4 设置开机自动以某个非root用户启动脚本

    开机自动运行脚本,可以将脚本的执行命令放在 /etc/rc.d/rc.local 文件中,但是这样开机自动运行这个脚本的用户默认为root. 如果想以某个非root用户运行脚本,可以使用如下命令: s ...

  8. 非ROOT用户启动Tomcat

    [root@Z ~]# adduser tomcat [root@Z ~]# chown -R tomcat:tomcat /usr/local/tomcat/ [root@Z ~]# chown - ...

  9. zzw原创_非root用户启动apache的问题解决(非root用户启动apache的1024以下端口)

    场景:普通用户编译的apache,要在该用户下启动1024端口以下的apache端口 1.假设普通用户为sims20,用该用户编译 安装了一个apache,安装路径为/opt/aspire/produ ...

  10. 非root用户启动redis容器报错mkdir: cannot create directory '/bitnami/redis': Permission denied

    问题:使用docker启动容器时,报错如下 zh@debian:~/testPath$ docker-compose up redis Starting testpath_redis_1 ... do ...

随机推荐

  1. Hadoop大数据架构及关键组件-建立大数据知识体系

    Hadoop大数据架构及关键组件1. Hadoop生态系统1.1 架构大数据生态的主要组件及其关系大数据生态大数据架构1. HDFS(Hadoop分布式文件系统):2. MapReduce(分布式计算 ...

  2. 第四章 dubbo源码解析目录

    9.1 客户端发起请求源码 来看一下客户端请求代码: 1 DemoService demoService = (DemoService) context.getBean("demoServi ...

  3. 学习shamir秘密分享

    介绍 1979年Shamir在下文提出基于拉格朗日插值多项式的\((r,n)\)秘密共享方案(\(0<r \leq n\)).秘密拥有者通过构建一元多项式将秘密分为\(n\)份,接收方收集大于等 ...

  4. Codeblocks 显示所创建工程的文件夹

    问题: 有时创建完工程后没有默认打开文件夹: 方法: 使用F2 +shift view->manager

  5. AVX512

    最近接触到SIMD编码,就不可避免的查到了AVX指令集,两者有什么关系呢,了解一下? 问:AVX是什么? 答:是一套指令集 下面具体看: AVX 以下内容主要转载自:AVX指令集是什么?它的应用又有哪 ...

  6. ORACLE SELECT INTO 赋值为空,抛出 NO DATA FOUND 异常

    例子: DECLARE ORDER_NUM VARCHAR2(20); BEGIN SELECT S.ORDER_NUM INTO ORDER_NUM FROM SALES_ORDER S WHERE ...

  7. KUKA库卡机器人KR120维修故障参考方案

    随着智能制造的飞速发展,KUKA库卡机器人KR120以其稳定的特点,在自动化生产线上扮演着举足轻重的角色.然而,任何机械设备在长期运行过程中都难免会遇到故障.本文将针对KUKA库卡机器人KR120维修 ...

  8. 【Manim】空间与变换笔记

    [Manim]空间与变换笔记 所有常量都可以在constants.py中找到 屏幕空间 屏幕中心为原点(0,0,0),遵循右手坐标系,向右为x轴正方向,向上为y轴正方向,向前为z轴负方向,旋转时正方向 ...

  9. QT5笔记: 35. QGraphicsView 视图

    ![image-20220505144510057](QT5 使用.assets/image-20220505144510057.png) 三者关系:View中可以有多个Scene,Scene放在Vi ...

  10. 洋葱学园:开启高效学习之旅的宝藏 APP 40天会员5元到手价

    洋葱学园是一款在在线教育领域表现出色的教学 APP ,下面为您详细介绍它的特点以及推荐理由. 丰富的学科覆盖: 洋葱学园涵盖了从小学到高中的全学科课程,包括数学.语文.英语.物理.化学等.无论您处于哪 ...