来源:Linux社区  作者:svili

# 前言:Linux下为什么要使用非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 (tomcat.dev 可以看作 当前用户组.用户)

# 赋予用户执行权

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

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐