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

  1.首先进入Tomcat官网(http://tomcat.apache.org/)下载Tomcat9的以.tar.gz打包压缩方式的二进制压缩包。

  

  2.在Ubuntu中使用wget命令下载到本地

  3.Ubuntu下一般将第三方程序安装到/usr/local目录下,所以将下载好的tomcat安装包移动到/usr/local目录下执行tar -zvxf apache-tomcat-9.0.0.M4.tar.gz

  4.解压完成后进入Tomcat安装目录的bin文件夹找到commons-daemon-native.tar.gz,同样执行tar -zvxf commons-daemon-native.tar.gz

  5.解压完成后会在bin目录下生成一个commons-daemon-1.0.15-native-src目录,进入./commons-daemon-1.0.15-native-src/unix目录

  6.执行目录下./configure文件(注:执行此命令需配置java环境变量,如果未配置需以--with-java= 指定java安装目录)

  

  7.上一步成功后执行make命令

  8.执行成功后会在当前目录生成一个jsvc的目录,将其复制到tomcat的bin目录下,cp jsvc ../../

  9.为Tomcat添加一个指定的用户,本例中以tomcat为用户名:useradd tomcat -M -d / -s /usr/sbin/nologin。(-M不创建用户主目录  -d指定用户主目录  -s指定用户shell)

  10.回到Tomcat安装目录的bin目录中:cd ../../

  11.使用vi或者vim修改bin目录下的daemon.sh文件,设置TOMCAT_USER=tomcat,JAVA_HOME=/usr/lib/jdk1.8.0_91,保存退出

  

  12.设置tomcat安装目录下所有文件的所有者和所属组为tomcat(由于tomcat是由root解压的,所有文件所属权为root,如果不进行移权其他用户将无法启动tomcat服务):chown -R tomcat:tomcat /usr/local/Tomcat9

  13.然后在Tomcat安装目录的bin目录下就可以使用daemon.sh start命令启动Tomcat服务

  14.为了方便我们将Tomcat设置为服务(在init.d下创建软连接):ln -s /usr/local/Tomcat9/bin/daemon.sh /etc/init.d/Tomcat9

  15.这样就可以使用service Tomcat9 start进行启动了

  16.设置Tomcat为开机自启动服务,需先将tomcat设置为服务:update-rc.d Tomcat9 defaults

  17.如果想移除Tomcat开机自启动,执行以下命令:update-rc.d Tomcat9 remove

  以上内容是在http://www.2cto.com/os/201405/297777.html指导下,根据实际情况进行的配置

Ubuntu配置Tomcat9非root用户启动的更多相关文章

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

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

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

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

  3. Ubuntu环境下非root用户指定版本Python的安装及虚拟环境virtualenv的使用

    Ubuntu环境下非root用户指定版本Python的安装及虚拟环境virtualenv的使用 参考博客: https://blog.csdn.net/leviopku/article/details ...

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

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

  5. 使用非root用户启动tomcat

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

  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. zzw原创_非root用户启动apache的问题解决(非root用户启动apache的1024以下端口)

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

  9. 非ROOT用户启动Tomcat

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

随机推荐

  1. java基础知识(五)java类

    类是java的核心和本质,是java语言的基础. 一.java中的类 1.类class 一个类可以包含局部变量.实例变量.类变量(静态变量) 一个类至少有一个构造方法,如果没有,系统会默认给出一个无参 ...

  2. redis lua

    需求是在缓存最近一周内用户所有消息列表,考虑用Redis 存储:为每个存储一个独立Sorted Set,value 为消息体,Score 为MessageId,用以实现增量消息同步. 问题就来了:So ...

  3. MVC安全防护

    一.XSS攻击 跨域脚本攻击(Cross Site Scripting),恶意植入前端代码,比如HTML代码和客户端脚本,异常js获取用户cookie然后跳转到别的站点. 防护措施 标签转换(如&qu ...

  4. 高可用thrift客户池的实现详解

    最近,公司要求将组内的thrift客户端组件推广至公司内使用.基本的要求如下: 1.高可用 2.集成名称服务,也就配置文件支持服务发现 3.解耦,客户端和高可用组件解耦,简单来说就是,如果以后要切换其 ...

  5. int ,long , long long类型的范围

    int ,long , long long类型的范围 unsigned - - unsigned - - unsigned __int64的最大值: __int64的最小值:- unsigned __ ...

  6. iOS url中文编码

    有两种方法: 一,使用NSString的方法: NSString* string2 = [string1 stringByAddingPercentEscapesUsingEncoding:NSUTF ...

  7. 让你的 Xcode8 继续使用插件

    发表于 2016-09-10   |   分类于 Tips   |   21条评论   |   阅读次数 8383 随着 iOS10 的正式版即将发布,Xcode8 GM 也在发布会后放出,本文不会涉 ...

  8. SQUID常用命令

    Squid日常维护过程中,常用的一些命令: 1,初始化你在 squid.conf 里配置的 cache 目录squid -z如果有错误提示,请检查你的 cache目录的权限.可以使用使用更改目录权限: ...

  9. Python中的网络编程

    TCPServer端: __author__ = 'Nature' # -*- coding: utf-8 -*- from socket import * from time import ctim ...

  10. Duilib源码分析(四)绘制管理器—CPaintManagerUI

    接下来,分析uilib.h中的UIManager.h,在正式分析CPaintManagerUI前先了解前面的一些宏.结构: 枚举类型EVENTTYPE_UI:定义了UIManager.h中事件通告类型 ...