777權限的奧妙

1、當用戶訪問一個網頁php

這個時候,你的服務器內部發生了什麼,請參考下圖。其中任何一個環節有漏洞,都會出問題。注意,本圖片只表明我的理解,並不是真實流程。linux

2、文件的權限只有三種程序員

查詢一下linux的標準文檔,就知道。文件分爲,讀、寫、執行三種權限。web

r Read 能夠打開並讀取內容。shell

w Write 能夠修改內容,增長內容,甚至刪除內容。安全

x Execute 能夠當作可執行程序,或者shell腳本執行。服務器

特別注意,對於目錄來講,x表示能夠瀏覽他裏頭都有什麼文件。運維

3、文件權限針對的是三類用戶。網站

owner 文件全部者,或者說是建立了這個文件的人。server

group 文件所在的組,一個組能夠包含不少個owner,但不必定包含當前文件這個owner。

other 其餘人,也就是除了當前這個owner,除了當前這個group外的全部人。

4、實際是什麼樣子的。

linux中全部文件都須要記錄這3種權限和3種人羣。3x3=9,再加上一個標記表示「這是否是一個目錄」,一共10個標記。如圖所示,

這12行表示12個文件,都是一個叫sin的人建立都,並且sin的分組是staff。

5、詳細解釋一下。

咱們從前到後逐一說一遍。寫着子母(drwx)的,表示有這個權限。寫着橫線(-)的,表示沒有這個權限。

drwxrwxrwx

1: 這是否是一個文件夾。d表示是,-表示否。(若是寫的是l,能夠理解爲他是快捷方式)

2:owner是否能夠讀取這個文件的內容。r表示是,-表示否。

3:owner是否能夠改寫這個文件的內容。w表示是,-表示否。

4: owner是否能夠執行這個文件。x表示是,-表示否

5:group是否能夠讀取這個文件的內容。r表示是,-表示否。

6: group是否能夠改寫這個文件的內容。w表示是,-表示否。

7: group是否能夠執行這個文件。x表示是,-表示否。

8: other是否能夠讀取這個文件的內容。r表示是,-表示否。

9:other是否能夠改寫這個文件的內容。w表示是,-表示否。

10:other是否能夠執行這個文件。x表示是,-表示否。

6、怎麼用數字方便的表示文件權限。

由於10個位置中,第1個不是權限,咱們就只看後邊9個位置。

如何把這個權限轉化成數字呢?

rwxrw-r--

owner group other

符號 r w x r w - r - -

二進制1 1 1 1 1 0 1 0 0

相加之和 7 6 4

111 = 2^2 + 2^1 + 2^0 = 7

110 = 2^2 + 2^1 =6

100 = 2^2 = 4

因此rwxrw-r--就變成了:764

7、經常使用的權限數字

經常使用更改文件權限的命令,xxx表明文件名

600 只有owner有讀和寫的權限

644 owner有讀和寫的權限,group只有讀的權限

700 只有ower有讀和寫以及執行的權限

666 owner,group,other都有讀和寫的權限

777 owner,group,other都有讀和寫以及執行的權限

8、終於講到正題了

講了這麼說,你應該明白777的意思就是,任何人能夠幹任何事。那等於什麼權限都沒設啊!linux再安全也架不住本身人刻意製造漏洞吧。這徹底等同於把鋼鐵俠屁股上的材料換成了窗戶紙。

linux的安全原則是最小權限原則,能不給的權限就不要給。而不少懶惰或者新手的程序員每每爲了省事使用最大權限。

有的人問,網站須要上傳圖片,須要w很正常,不然圖片放哪呢。那我想問,你家的房子,是否是能夠隨便挪動?冰箱能挪動,承重牆能挪的動嗎?請注意,客廳,臥室,廁所,廚房的空間都是rw的,可是承重牆只能是r的,不能隨便w。

同理,網站核心代碼是不可寫的,只能可讀。

學會了權限的基本支持,怎麼運用呢?(只能說大概意思,具體應該怎麼部署,仍是找專業都運維同窗問吧,我很久沒碰web了。)

假設我把核心代碼放在/var/www/,我把圖片放在/var/pic/。前者目錄rw,裏頭全部文件r。後者自己w,裏頭全部文件r

webserver只能解析/var/www/裏的文件,不能執行/var/pic/裏的。這樣不至於讓人家把木馬程序放到/var/pic/裏執行。

因爲每一個網站使用的語言都不同,沒法作一個統一說明,只能舉幾個例子。假如你的網站使用php語言,植入的木馬基本也都是php語言寫的命令。

能夠分別試試這兩個命令,由於php木馬經常使用eval和create_function來作壞事(說/var/www/路徑不存在的同窗,面壁思過10分鐘)。

grep "eval(" /var/www/* -r

grep "create_function(" /var/www/* -r 

請注意,並非沒有用777權限,就萬無一失了,web的漏洞多如牛毛,無孔不入,本文章只是拋磚引玉。

相關文章
相關標籤/搜索