Linux下非root用戶運行Tomcat


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.15-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


      如果事后就后悔當時應該做別的選擇,就表示不論選哪一條路都會得到相同的結果


免責聲明!

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



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