linux下非root用户运行tomcat

转载  2017-12-24   作者:svili   我要评论

这篇文章主要介绍了linux下非root用户运行tomcat ,需要的朋友可以参考下

# 前言:为什么要使用非root用户运行tomcat

root用户启动tomcat有一个严重的问题,那就是tomcat具有root权限。

这意味着你的任何一个页面脚本(html/js)都具有root权限,所以可以轻易地用页面脚本 修改整个硬盘里的文件!

所以最好不要使用root启动tomcat。

# 正文:非root用户运行tomcat

## tomcat安装

略... 本文安装目录为 /opt/tomcat8

## 创建用户

# 创建用户组 dev
groupadd dev

# 创建用户 tomcat


useradd -g dev -s /usr/sbin/nologin tomcat

说明:-s /usr/sbin/nologin 禁止该用户登录。

也可以在用户创建之后执行

useradd -g dev
usermod -s | --shell /usr/sbin/nologin username

## tomcat配置

### 编译安装服务守护程序
#
cd /opt/tomcat8/bin/
# 解压
tar vzxf commons-daemon-native.tar.gz
# 
cd /opt/tomcat8/bin/commons-daemon-1.0.15-native-src/unix/
# 安装前的配置 及校验
./configure
# 若未配置$java_home需指定JDK目录
./configure --with-java=/opt/jdk_1.7

如果出现如下错误提示,说明未设置JAVA_HOME变量

*** Java compilation tools ***
checking for JDK location... configure: error: Java Home not defined. Rerun with --with-java=... parameter

如果看到以下信息,就可以编译/安装了

*** All done ***
Now you can issue "make"

# 编译/安装
make
# 执行make后会生成一个jsvc文件,将其复制到tomcat的bin目录
cp jsvc /opt/tomcat8/bin

### 修改启动脚本文件

vi /opt/tomcat8/bin/daemon.sh

找到如下内容

test ".$TOMCAT_USER" = . && TOMCAT_USER=tomcat
# Set JAVA_HOME to working JDK or JRE
# JAVA_HOME=/opt/jdk-1.6.0.22

修改TOMCAT_USER=tomcat,"tomcat"为运行tomcat的用户,本文创建的用户即为tomcat,所以不用修改。

去除JAVA_HOME前的注释(即“#”号),并设置为JDK的所在目录(/opt/jdk_1.7)。

## 更改tomcat目录权限

# 更改文件所有者
chown -R tomcat:dev /opt/tomcat8
# 赋予用户执行权
chmod a+x /opt/tomcat8/bin/daemon.sh

# 附:tomcat命令

# 后台运行
/opt/tomcat/bin/daemon.sh start
# 前台运行
/opt/tomcat/bin/daemon.sh run
# 停止
/opt/tomcat/bin/daemon.sh stop

# 创建符号链接/软连接
ln -s /opt/tomcat8/bin/daemon.sh /etc/init.d/tomcat8
# tomcat8添加至系统服务
chkconfig –-add tomcat8
#启动/停止
service tomcat8 start/stop

总结

以上所述是小编给大家介绍的linux下非root用户运行tomcat,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言!

相关文章

  • 每天一个linux命令 chgrp命令

    每天一个linux命令 chgrp命令

    这篇文章主要为大家详细介绍了一个linux命令:chgrp命令,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • 一个简单的linux命令 mkdir

    一个简单的linux命令 mkdir

    这篇文章主要介绍了一个简单的linux命令mkdir,mkdir 命令用于创建指定名称的目录,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • Linux启动新进程的几种方法及比较

    Linux启动新进程的几种方法及比较

    有时候,我们需要在自己的程序(进程)中启动另一个程序(进程)来帮助我们完成一些工作,那么我们需要怎么才能在自己的进程中启动其他的进程呢?在Linux中提供了不少的方法来实现这一点,下面就来介绍一个这些方法及它们之间的区别。
    2017-04-04
  • linux中mysql备份shell脚本代码

    linux中mysql备份shell脚本代码

    在linux中如果想定时备份数据库的脚本我们可以很方便简单的操作,下面我来分享一段mysql定时备份的脚本代码
    2013-02-02
  • shell 编程中空格的使用方法

    shell 编程中空格的使用方法

    这篇文章主要介绍了shell 编程中空格的使用方法,需要的朋友可以参考下
    2015-01-01
  • shell for循环与数组应用介绍

    shell for循环与数组应用介绍

    先举一个例子,shell for循环读取一个文件,把每一行赋值给一个数组的变量,然后介绍shell数组的相关知识,有需要的朋友可以参考下
    2013-02-02
  • Shell脚本配合iptables屏蔽来自某个国家的IP访问

    Shell脚本配合iptables屏蔽来自某个国家的IP访问

    这篇文章主要介绍了Shell脚本配合iptables屏蔽来自某个国家的IP访问,本文利用IPdeny的IP数据,然后用Shell脚本导入iptables实现屏蔽IP访问,需要的朋友可以参考下
    2015-04-04
  • 使用shell脚本采集系统cpu、内存、磁盘、网络等信息

    使用shell脚本采集系统cpu、内存、磁盘、网络等信息

    这篇文章主要介绍了使用shell脚本采集系统cpu、内存、磁盘、网络等信息,需要的朋友可以参考下
    2014-05-05
  • Linux Shell中的特殊符号和含义简明总结(包含了绝大部份)

    Linux Shell中的特殊符号和含义简明总结(包含了绝大部份)

    这篇文章主要介绍了Linux Shell中的特殊符号和含义简明总结,本文汇总了包含了绝大部份的Shell特殊符号,对每一个符号的作用做了总结,需要的朋友可以参考下
    2014-06-06
  • shell编程基础知识小结

    shell编程基础知识小结

    这篇文章主要介绍了shell编程基础知识,包括文件类型、正则表达式、字符类、引号类型、变量设置、条件测试、命令执行顺序、脚本调试方面的介绍
    2013-02-02

最新评论