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
如果事后就后悔當時應該做別的選擇,就表示不論選哪一條路都會得到相同的結果