zoukankan      html  css  js  c++  java
  • 非root用户启动tomcat

    sudo默认是需要tty的,通过修改/etc/sudoers文件,将 Defaults requiretty 注释掉即可

    用root用户启动tomcat有一个严重的问题,那就是tomcat具有root权限。这意味着你的任何一个jsp脚本都具有root权限,所以可以轻易地用jsp脚本删除你整个硬盘里的东西!所以我们最好不要使用root启动tomcat

    使用非root用户运行tomcat有3中方法:

    1.使用tomcat自带的工具jsvc,在在tomcat的bin目录下有一个jsvc.tar.gz的文件,进入tomcat的bin目录下 
    将其解压,得到jsvc-src文件夹,进入jsvc-src。在终端运行:

    ./configure --with-java=/usr/lib/j2sdk1.6-sun(改成你的JDK的位置) 
    make
    得到jsvc-src/jsvc文件。将jsvc-src/native/tomcat6.sh脚本文件拷贝到/etc/init.d下/etc/init.d/tomcat6.sh还需要修改,使其看起来像:
    JAVA_HOME=/usr/lib/j2sdk1.6-sun
    CATALINA_HOME=/usr/share/tomcat6
    DAEMON_HOME=/usr/share/tomcat6
    TOMCAT_USER=tomcat6 #这里改为一个普通身份的用户名
    TMP_DIR=/var/tmp
    CATALINA_OPTS=
    CLASSPATH=
    $JAVA_HOME/lib/tools.jar:
    $CATALINA_HOME/bin/commons-daemon.jar:
    $CATALINA_HOME/bin/bootstrap.jar
    case "$1" in
    start)
       #
       # Start Tomcat
       #
       $DAEMON_HOME/bin/jsvc-src/jsvc
       ......


    2.使用su命令 
    tomcat的启动脚本中,tomcat的启动命令那行改为su -c /home/tomcat/bin/startup.sh tomcat,tomcat即为启动tomcat的用户

    ===================================

    # addusr tomcat
    # chown -R tomcat:tomcat /usr/local/tomcat
    -------------------------------------
    #vi /etc/rc.local
    在最后加入:
    su - tomcat -c '/usr/local/tomcat/bin/startup.sh'
    ------------------------------------
    REBOOT试试,JSP用ROOT启动不安全的问题解决了

    su - tomcat -c '/usr/local/tomcat/bin/shutdown.sh' ‘tomcat停止命令


    3.使用sudo命令 
    tomcat的启动脚本中,tomcat的启动命令那行改为sudo -u tomcat /home/tomcat/bin/startup.sh,tomcat即为启动tomcat的用户 
    使用sudo时要注意,sudo默认是需要tty的,通过修改/etc/sudoers文件,将 Defaults requiretty 注释掉即可,否则系统启动时是不会自动运行的

  • 相关阅读:
    在web项目中使用配置文件
    javaFx教程 scene builder 加载第三方jar包
    getResource的两种用法
    tomcat部署工具
    withMisfireHandlingInstruction
    quartz教程三
    quartz教程二
    LocalDateTime与DateTimeFormatter
    quartz demo
    在小程序中点击后跳转到另一个小程序
  • 原文地址:https://www.cnblogs.com/hechunhua/p/4933275.html
Copyright © 2011-2022 走看看