PS:Linux下使用非root用户运行tomcat的原因

由于项目需求,也由于root用户启动tomcat有一个严重的问题,那就是tomcat具有root权限。

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

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

正文:非root用户运行tomcat

#本文安装目录为 /opt/tomcat6

# 创建用户

# 创建用户组 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配置

#编译安装服务守护程序

#进入tomcat目录
cd /opt/tomcat6/bin/
# 解压
tar vzxf commons-daemon-native.tar.gz
# 进入unix目录
cd /opt/tomcat6/bin/commons-daemon-1.0.-native-src/unix/ 

# 安装前的配置 及校验 
./configure 

# 若未配置$java_home需指定JDK目录 
./configure --with-java=/opt/jdk_1.6_45

如果出现如下错误提示,说明未设置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/tomcat6/bin

# 修改启动脚本文件

vi /opt/tomcat6/bin/daemon.sh

#找到如下内容

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

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

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

## 更改tomcat目录权限

# 更改文件所有者
chown -R tomcat:dev /opt/tomcat6
# 赋予用户执行权
chmod a+x /opt/tomcat6/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/tomcat6/bin/daemon.sh /etc/init.d/tomcat6
# tomcat6添加至系统服务
chkconfig –-add tomcat6
#启动/停止
service  tomcat6  start/stop

      如果事后就后悔当时应该做别的选择,就表示不论选哪一条路都会得到相同的结果

Linux下非root用户运行Tomcat的更多相关文章

  1. Linux下非root用户如何安装软件

    Linux下非root用户如何安装软件 从windows转移到Linux的用户最开始总会有各种不适,因为这种不适最终放弃linux的不在少数.对于这类人只能说可惜,还没有领略到linux的美好就过早放 ...

  2. Linux 下非root用户使用docker

    Linux 下非root用户使用docker 通常我们使用linux系统的时候,最好是不要直接使用root账号,但是使用Docker的时候,默认又是不能使用非root用户的,关于原因,官方说法如下: ...

  3. [转载]Linux下非root用户如何安装软件

    [转载]Linux下非root用户如何安装软件 来源:https://tlanyan.me/work-with-linux-without-root-permission/ 这是本人遇到的实际问题,之 ...

  4. linux下非root用户的sudo问题

    linux下的root用户是个超级管理员,一般是不用这个用户登录进行操作的,但有时候需要root权限,又不想切换用户的话可以使用sudo命令.但是不是所有的用户都可以使用sudo命令的. 首先可能会遇 ...

  5. Linux下非root用户安装软件的一般流程:

    1. 获取源代码,一般是wget方式,ubuntu可以使用apt-get source来获取源代码. 2. 解压源代码,一般使用tar -zxvf xxx.tar.gz即可 3. 切换到解压后的目录, ...

  6. Linux 下非 root 用户安装 theano(配置 GPU)

    非 root 用户,安装 Python 第三方的包,尤其像 theano,存在大量的依赖项,存在的主要问题,是安装各个包时的权限问题.所幸,存在这样一个集成工具,叫 anaconda,其已经内置了许多 ...

  7. linux下非root用户怎样改动root权限的文件

           在linux下会出现把一些配置文件參数配错.rootpassword忘记等导致系统无法启动或进入root的窘迫境界.本文以redhat  enterprise linux server ...

  8. linux下非root用户获得/dev/ttyUSB0的读写权限

    首先查看/dev/ttyUSB0的权限属性,在终端输入: ll /dev/ttyUSB0 teashaw@xiaopeiqing.com:~$ ll /dev/ttyUSB0 crw-rw—- 1 r ...

  9. Linux环境(服务器)下非root用户安装Python3.6

    Linux环境(服务器)下非root用户安装Python3.6 在管理实验室集群时候,遇到的问题--非root用户在搭建自己环境时候,如何搭建. 注意: root用户的根目录是root,非root用户 ...

随机推荐

  1. PHP max() 函数

    实例 通过 max() 函数查找最大值: <?phpecho(max(2,4,6,8,10) . "<br>");echo(max(22,14,68,18,15) ...

  2. C/C++编程笔记:C++入门知识丨运算符重载

    本篇要学习的内容和知识结构概览 运算符重载使用场景 常规赋值操作 我们现在有一个类 想要实现这种赋值操作 具体实现如下: 所以说呢,我们在使用运算符进行运算的时候, 实际上也是通过函数来实现运算的. ...

  3. Jenkins总结3-shell脚本

    我写shell脚本的功力还很初级,基本都是现学现卖,写得不是很健壮,只能提供个思路,请大家包涵. 我使用的系统只能发函数放到shell最前面.本人还是比较推崇函数式脚本的,方便复用,目前只简单的封装了 ...

  4. Redis服务之常用配置(三)

    上一篇博客我们聊了下redis的rdb持久化.安全连接.资源限制相关配置;回顾请参考:https://www.cnblogs.com/qiuhom-1874/p/13394411.html;今天我们来 ...

  5. Web优化躬行记(3)——图像和网络

    一.图像 1)响应式图像 浏览器根据屏幕大小.设备像素比.横竖屏自动加载合适的图像. 响应式的功能可以通过srcset和sizes两个新属性实现. 前者可指定选择的图像以及其大小,后者会定义一组媒体条 ...

  6. AutoMapper 9.0的改造(续)

    上一篇有一个读者,有疑问,如何自动化注册Dto 我开篇,做了一个自动化注册的 public sealed class AutoInjectAttribute : Attribute { public ...

  7. 23、Interpreter 解释器模式

    1.Interpreter 解释器模式 解释器模式是一种使用频率相对较低但学习难度较大的设计模式,它用于描述如何使用面向对象语言构成一个简单的语言解释器.在某些情况下,为了更好地描述某一些特定类型的问 ...

  8. ExtremeNet

  9. cudnn加速计算

    cudnn加速运算 torch.backends.cudnn.enabled = True torch.backends.cudnn.benchmark = True 第一句话是说,使用的是非确定性算 ...

  10. go微服务系列(二) - 服务注册/服务发现

    目录 1. 服务注册 1.1 代码演示 1.2 在go run的时候传入服务注册的参数 2. 服务发现均衡负载 2.1 均衡负载算法 2.2 服务发现均衡负载的演示 1. 服务注册 1.1 代码演示 ...