Centos7下配置Tomcat7以指定(非root)身份運行


通常情況下,在配置Tomcat生產環境時,通常會配置Tomcat以特定的身份運行(非root),這樣有利於提高安全性,防止網站被黑后的進一步權限提升。

本文依賴的環境:

Ubuntu(其實大部分同樣適用於CentOS)JVM(安裝並已配置好環境變量)gcc、make等編譯工具JAVA_HOME=/usr/lib/jvm/jdk1.7.0_55CATALINA_HOME=/usr/local/apache-tomcat-7.0.53運行Tomcat的用戶名為tomcat

首先需要到Apache Tomcat官網下載最新版Tomcat

Apache Tomcat:http://tomcat.apache.org

下載好安裝包,解壓到/usr/local/apache-tomcat-7.0.53下

# 進入Tomcat安裝目錄下的bin目錄
cd /usr/local/apache-tomcat-7.0.53/bin

# 解壓commons-daemon-native.tar.gz
tar zxvf commons-daemon-native.tar.gz

cd commons-daemon-native-src/unix

# 這里需要gcc、make等編譯工具,如果沒有指定JAVA_HOME環境變量,則需要 --with-java= 參數指定jdk目錄
./configure

# 上一步成功后,make
make

# make后,會在當前文件夾下生成一個名為 jsvc 的文件,將其復制到$CATALINA_HOME/bin目錄
cp jsvc ../../

# 添加一個用來運行Tomcat的用戶
useradd tomcat -M -d / -s /usr/sbin/nologin

# 回到$CATALINA_HOME/bin目錄下
cd ../../

# 接下來便是修改$CATALINA_HOME/bin目錄下的 daemon.sh 文件
# 設置其中的TOMCAT_USER=tomcat,JAVA_HOME=/usr/lib/jvm/jdk1.7.0_55

test ".$TOMCAT_USER" = . && TOMCAT_USER=tomcat
# Set JAVA_HOME to working JDK or JRE
 JAVA_HOME=/usr/local/java/jdk1.7.0_79

  以上是修改后效果

# 如果$CATALINA_HOME/bin下的*.sh文件沒有運行權限,則為其添加運行權限 chmod +x *.sh # 設置$CATALINE_HOME文件夾及其所有子文件Owner為tomcat chown -R tomcat:tomcat /usr/local/apache-tomcat-7.0.53 # 啟動Tomcat daemon.sh start

設置Tomcat為Service

# 創建 $CATALINA_HOME/bin/daemon.sh 的一個鏈接到 /etc/init.d/ 下,service名為tomcat7
ln -s /usr/local/apache-tomcat-7.0.53/bin/daemon.sh /etc/init.d/tomcat7

# 啟動Tomcat
/etc/init.d/tomcat7 start
# 或者
service tomcat7 start

設置Tomcat開機自啟動 (前提是已經設置Tomcat為Service)


免責聲明!

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



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