小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

記一次Linux上Tomcat啟動(dòng)權(quán)限的學(xué)習(xí)和思考的記錄

 浸心閣 2016-01-13


這個(gè)過(guò)程不見得有多少技術(shù),但從一個(gè)問題出發(fā),學(xué)習(xí)到知識(shí),那是粉有意思的~特作記錄~

前一陣子已經(jīng)把服務(wù)器上的Tomcat配置完畢。但使用一陣時(shí)間之后,由于不熟悉Linux下的權(quán)限管理,多次對(duì)Tomcat和其下的WebApp進(jìn)行權(quán)限更改。結(jié)果權(quán)限配置大混亂。

服務(wù)器管理員只有我和阿威,Tomcat是阿威安裝的,整個(gè)Tomcat的被調(diào)整為Owner是root,組是阿威的組。開始一段時(shí)間,我沒有對(duì)Tomcat進(jìn)行操作,沒發(fā)現(xiàn)我不能啟動(dòng)和停止Tomcat的運(yùn)行狀態(tài)。后來(lái)由于需要在服務(wù)器上展示團(tuán)委網(wǎng)站,我把項(xiàng)目上傳到服務(wù)器上,然后發(fā)現(xiàn)我竟然不能重啟Tomcat!運(yùn)行tomcat的 startup.sh 啟動(dòng)服務(wù),系統(tǒng)報(bào)出的錯(cuò)誤是 JAVA_HOME or CATALINA_HOME not defind 。ECHO這兩個(gè)變量,發(fā)現(xiàn)果斷存在,可是我就是啟動(dòng)不了。糾結(jié)~!我Su到阿威的用戶,結(jié)果還是啟動(dòng)不了。切換到超級(jí)管理員,啟動(dòng),還是報(bào)這個(gè)錯(cuò)誤。崩潰鳥!只好讓阿威親自啟動(dòng)。

如此幾次,我都煩了。今天特地處理一下這個(gè)問題,突然想到是不是權(quán)限問題。查看發(fā)現(xiàn)Tomcat的權(quán)限果斷與我無(wú)關(guān)。想了想,建一個(gè)Tomcat的組,然后把阿威和我都加入這個(gè)組中,然后把Tomcat設(shè)置屬組為tomcat。于是,我順利的流暢的爽快的啟動(dòng)和停止Tomcat的運(yùn)行。

再次上傳團(tuán)委網(wǎng)站,上傳到服務(wù)器上的Web項(xiàng)目竟然顯示一片空白。喵了個(gè)咪,沒有錯(cuò)誤信息,就是一片子空白。什么鳥毛問題???打開其它Web項(xiàng)目,他們都跑的好好的啊!可是為毛我的就是顯示一片子空白呢??。。?!

我把剛上傳的Web項(xiàng)目權(quán)限什么的,都修改得和其它Web項(xiàng)目一個(gè)樣子,可是,還是一片子空白!靠,怒了!我直接把其它項(xiàng)目復(fù)制,改名再跑。哦日!還是空白一片!
想自殺了……

千找萬(wàn)找,就是找不到原因,最后查看Tomcat的日志,毛病,Tomcat沒把錯(cuò)誤報(bào)到頁(yè)面上來(lái),我還以為這跟Tomcat沒有關(guān)系,我竟然最后才查Tomcat的輸出日志……

找到一句長(zhǎng)了這個(gè)模樣的信息:/usr/local/apache-tomcat-7.0.21/work/Catalina/localhost/tw_page/ (Permission denied) 是說(shuō)這個(gè)目錄木有操作權(quán)限。

暈!我快快查看tomcat的目錄權(quán)限,www組的權(quán)限是rwx,木有問題啊?。?!無(wú)語(yǔ)ing。

后來(lái)想到一點(diǎn),我來(lái)精神了:這Tomcat啟動(dòng)時(shí),是什么權(quán)限???谷歌+百度搜索,硬是沒有人明確的告訴我,這Tomcat運(yùn)行時(shí)是什么用戶。怒了,我自己動(dòng)手測(cè)試:

Java里Runtime.getRuntime().exec (String cmd)可以運(yùn)行系統(tǒng)命令……(此時(shí)我才知道這是一個(gè)大殺器。)
通過(guò)這個(gè)方法,執(zhí)行Linux查詢自己是神馬用戶的命令: whoami 就可以知道自己是神馬東西了。

Java代碼  收藏代碼
  1. <%@ page contentType="text/html; charset=utf-8" import="java.io.*"%>  
  2. <%  
  3. try  
  4. {  
  5.     Process process = Runtime.getRuntime().exec ("whoami");  
  6.     String line = new String();  
  7.     out.print("本JSP頁(yè)面所屬用戶:");  
  8.     while ((line = new LineNumberReader (new InputStreamReader(process.getInputStream()))  
  9.         .readLine ()) != null){  
  10.         out.println(line);  
  11.     }  
  12.     out.print("<br/>查看目錄文件:/home/chenyoca</br>");  
  13.     for(File f : new File("/home/chenyoca").listFiles()){  
  14.                 out.println(f.getName()+"<br/>");  
  15.     }  
  16. }catch (java.io.IOException e){  
  17.         out.println ("IOException " + e.getMessage());  
  18. }  
  19. %>  

首先在本地上測(cè)試一下,結(jié)果如下:

 

運(yùn)行結(jié)果顯示,是我登錄系統(tǒng)的用戶名。由于Windows只有一個(gè)用戶,在Windows平臺(tái)下,基本沒有什么權(quán)限可言。登錄了就是最高權(quán)限……

拿到服務(wù)器上測(cè)試:
結(jié)果顯示,也是我登錄系統(tǒng)的用戶名。喵了個(gè)咪,腫么是我的……果斷su到阿威的號(hào),一看,還是我的。
難道是誰(shuí)啟動(dòng)Tomcat,這進(jìn)程就是誰(shuí)的?一試,果然如此。

 


后來(lái),ps -Al查看,發(fā)現(xiàn)列表前面有一行東西長(zhǎng)的好熟悉,把列表拉到列表頭一看,原來(lái)是UID……我無(wú)知了。T_T


我突然想到,Tomcat如果是Root啟動(dòng)的話,那豈不是很危險(xiǎn)?

你看,如果Web項(xiàng)目被掛了WebShell,就可以完全執(zhí)行系統(tǒng)命令啦!

果斷拿自己的賬號(hào)試一下。先查詢HOME目錄下,自己的文件列表:
添加一行:

out.print("<br/>查看目錄文件:/home/chenyoca</br>");
for(File f : new File("/home/chenyoca").listFiles()){
    out.println(f.getName()+"<br/>");
}
結(jié)果:

 


額,果斷秒殺。

既然如此,那可以做的事件就多了……如果我的網(wǎng)站被入侵,而啟動(dòng)Tomcat的就是我,哪怕是阿威,那就危險(xiǎn)啦!除了執(zhí)行sudo需要輸入密碼,基本上我所在用戶組的數(shù)據(jù)就全部危險(xiǎn)了!

所以,我要限制Tomcat的權(quán)限。

可是,我要怎么設(shè)置,才能讓我啟動(dòng)Tomcat,但Tomcat只能在固定目錄里讀寫執(zhí)行呢?

在偉大的腦袋思考,加上以前了解的權(quán)限管理,我果斷得出以下方法:

1、把Tomcat包含子目錄,屬主和組全部設(shè)置root。
# chown root -R /usr/local/tomcat
       # chgrp root -R /usr/local/tomcat

2、把works目錄及其子目錄設(shè)置為www組,組屬性rwx。
# chgrp www -R /usr/local/tomcat/works
       # chmod g+rws -R /usr/local/tomcat/works

3、把logs目錄及其子目錄設(shè)置為www組,組屬性rw-。
        # chgrp www -R /usr/local/tomcat/logs
        # chmod g+rws -R /usr/local/tomcat/logs

4、啟動(dòng)Tomcat的管理員加入www組,這樣Tomcat啟動(dòng)后,可以向logs目錄寫入日志,works目錄生成緩存。

5、所有WebApp全部目錄設(shè)置不可寫,某些需要上傳圖片的目錄,把寫操作打開,并關(guān)閉執(zhí)行操作。
# chown root -R /var/www-data/*
       # chgrp www -R /var/www-data/*
       # chmod a-x -R /var/www-data/WebApp/WritenDir/*

OK,模擬一下入侵操作:

某蛋疼君發(fā)現(xiàn)了網(wǎng)站存在漏洞,通過(guò)利用漏洞,把WebShell寫到上傳圖片的目錄中。他成功上傳了,因?yàn)閳D片目錄可寫。然后,他打開上傳的文件,因?yàn)槟夸泝?nèi)的文件不可執(zhí)行,只能讀取,所以服務(wù)器會(huì)報(bào)404錯(cuò)誤。

測(cè)試一下,先打開可執(zhí)行操作,運(yùn)行結(jié)果如下:

 


關(guān)閉執(zhí)行操作,結(jié)果果斷報(bào)404錯(cuò)誤:

 

 

 

總結(jié):

這次從問題出發(fā),到解決問題,對(duì)Linux上Web應(yīng)用的權(quán)限管理學(xué)習(xí)得比較深刻。也算是長(zhǎng)知識(shí)了。

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多