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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM