使用不同的用戶給Tomcat重啓可能會造成tomcat下的所屬文件權限問題,導致系統頁面不能訪問。
參照下文。
http://chenyoca.iteye.com/blog/1204103
通常情況下我們要配置Tomcat是很容易的一件事情,但是如果您要架設多用戶多服務的Java虛擬主機就不那麼容易了。其中最大的一個問題就是Tomcat執行權限。普通方式配置的Tomcat是以root超級管理員的身份運行的,顯然,這是非常危險的,可想而知,一但網站被掛馬,您的整個服務器都可以被黑客控制了。而通過編譯或在線(例如RedHat系列的yum,
debian系列的apt-get)的方式安裝,一個服務器上又只能裝一個tomcat的服務,如果將多個網站放到同一個tomcat服務中,一但某一個網站出問題導致tomcat服務被卡死,則服務器上所有的網站都打不開了,無法滿足各網站程序獨享tomcat的需求。爲了解決這些問題,我們需要配置Tomcat以指定的身份運行,且一臺服務器上可以安裝任意多個tomcat服務。
如果我的網站被入侵,而啓動Tomcat的就是我,哪怕是阿威,那就危險啦!除了執行sudo需要輸入密碼,基本上我所在用戶組的數據就全部危險了!
所以,我要限制Tomcat的權限。
可是,我要怎麼設置,才能讓我啓動Tomcat,但Tomcat只能在固定目錄裏讀寫執行呢?
在偉大的腦袋思考,加上以前瞭解的權限管理,我果斷得出以下方法:
1、把Tomcat包含子目錄,屬主和組全部設置root。
# chown root -R /usr/local/tomcat
# chgrp root -R /usr/local/tomcat
2、把works目錄及其子目錄設置爲www組,組屬性rwx。
# chgrp www -R /usr/local/tomcat/works
# chmod g+rws -R /usr/local/tomcat/works
3、把logs目錄及其子目錄設置爲www組,組屬性rw-。
# chgrp www -R /usr/local/tomcat/logs
# chmod g+rws -R /usr/local/tomcat/logs
4、啓動Tomcat的管理員加入www組,這樣Tomcat啓動後,可以向logs目錄寫入日誌,works目錄生成緩存。
5、所有WebApp全部目錄設置不可寫,某些需要上傳圖片的目錄,把寫操作打開,並關閉執行操作。
# chown root -R /var/www-data/*
# chgrp www -R /var/www-data/*
# chmod a-x -R /var/www-data/WebApp/WritenDir/*
OK,模擬一下入侵操作:
某蛋疼君發現了網站存在漏洞,通過利用漏洞,把WebShell寫到上傳圖片的目錄中。他成功上傳了,因爲圖片目錄可寫。然後,他打開上傳的文件,因爲目錄內的文件不可執行,只能讀取,所以服務器會報404錯誤。
Linux下配置Tomcat並允許指定身份用戶管理服務
http://www.linuxidc.com/Linux/2014-11/109328.htm
http://www.cnblogs.com/avril/archive/2010/03/23/1692809.html