linux下非root用户运行tomcat
程序员文章站
2022-07-05 11:59:10
# 前言:为什么要使用非root用户运行tomcat
root用户启动tomcat有一个严重的问题,那就是tomcat具有root权限。
这意味着你的任何一个页面脚本(...
# 前言:为什么要使用非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系统下禁止非WHEEL用户使用SU命命的两种实现方法
-
linux下root用户和tarena用户vimrc配置
-
Linux 曝出严重安全漏洞,受限用户亦可提权至 Root 身份运行任意命令!(内附解决方案)
-
Linux下交互式与非交互式修改用户密码的例子
-
虚拟机Linux系统忘记密码的情况下,修改root或其他用户密码
-
linux下实时查看tomcat运行日志的方法
-
Linux忘记root密码,进入单用户模式,切换运行级别,切换用户
-
如何在Linux下修改Mysql的用户(root)密码
-
Python实现在Linux系统下更改当前进程运行用户
-
Linux下的 mariadb 使用 root 用户启动方式