linux下非root用户运行tomcat
时间:2019-04-11
本文章向大家介绍linux下非root用户运行tomcat,主要包括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,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言!
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- KITT-Lite:基于Python实现的轻量级命令行渗透测试工具集
- 一次KimSuky攻击事件分析
- OpenCV中如何使用滚动条动态调整参数
- 一文读懂「分布式架构」
- 老哥,您看我这篇Java集合,还有机会评优吗?
- 在 IDEA 中使用 Java 热部署插件 JRebel
- 后端必备 Git 分支开发:规范指南
- 大量的 TIME_WAIT 状态连接怎么处理?(文末有福利)
- 线上教育系统开发中,购物车功能是如何实现的?
- IntelliJ IDEA 2020.2重磅发布!全面支持Github PR。真香版本?
- 腾讯云智能语音小程序插件实现实时语音识别
- 我还在生产玩 JDK7,JDK 15 却要来了!|新特性尝鲜
- 36个助你成为专家需要掌握的JavaScript概念
- Bulehero 蠕虫病毒安全分析报告
- 一句话加速grep近30倍