Linux系統Web網站目錄和文件安全權限設置

查看Linux文件的權限:ls -l 文件名稱
查看linux文件夾的權限:ls -ld 文件夾名稱(所在目錄)
例如:
drwxr-xr-x 2 root root 4096 2009-01-14 17:34 bin
drwxr-xr-x 2 root root 4096 2009-01-14 17:34 bin
第一個字符表明文件類型。[d]–目錄、[-]–文件、[l]–連接、[b]–可儲存周邊設備、[c]–序列設備、[s]-套接字。
接下來每三個字符爲一組權限,分爲三組,依次表明全部者權限,同組用戶權限,其它用戶權限。
每組權限的三個字符依次表明是否可讀,是否可寫,是否可執行,[r]–可讀、[w]–可寫、[x]–可執行、[-]-相應的權限尚未被授予。其中,rwx也能夠用數字來代替,[r]=4,[w]=2,[x]=1,[-]=0。
第一組rwx :表示擁有人(user)全部者的權限 (這裏rwx:表明擁有人有可讀,可寫,可執行的權限)
第二組r-x:表示同組羣(group)使用者權限(這裏r-x表明同組羣使用者有可讀,可執行權限)
第三組r-x:表示其餘(other)使用者權限(這裏r-x表明其餘使用者有可讀,可執行權限) html

修改文件及文件夾權限:
sudo chmod -(表明類型)×××(全部者)×××(組用戶)×××(其餘用戶)
經常使用修改權限的命令:
sudo chmod 600 ××× (只有全部者有讀和寫的權限[-rw-------])
sudo chmod 644 ××× (全部者有讀和寫的權限,組用戶只有讀的權限[-rw-r--r--])
sudo chmod 666 ××× (每一個人都有讀和寫的權限[-rw-rw-rw-])
sudo chmod 700 ××× (只有全部者有讀和寫以及執行的權限[-rwx-----])
sudo chmod 777 ××× (每一個人都有讀和寫以及執行的權限[-rwxrwxrwx])
sudo chmod o+w xxx.xxx (表示給其餘人授予寫xxx.xxx這個文件的權限)
sudo chmod go-rw xxx.xxx (表示刪除xxx.xxx中組羣和其餘人的讀和寫的權限)
chmod 用於改變文件或目錄以及全部子目錄的訪問權限。該命令有兩種用法。一種是包含字母和操做符表達式的文字設定法;另外一種是包含數字的數字設定法。
1. 文字設定法
chmod [who] [+|–|=] [mode] 文件名
2. 數字設定法
chmod[mode]文件名
改變一個文件的權限: chmod mode file|dir
改變全部子目錄的權限: chmod mode dir -R (注意後面加了個-R參數)
參數就是權限模式,數字屬性的格式應爲3個從0到7的八進制數,其順序是(u)(g)(o),mode=777 or 752 or 666,mode的三個數字,分別表示owner,group,others所具備的權限。1=x執行,2=w寫,4=r讀,好比owner具備全部權限,1+2+4=7, 又好比group 具備讀 和執行權限 1+4=5。java

命令中各選項的含義爲:
操做對象who但是下述字母中的任一個或者它們的組合:
u 表示」用戶(user),也就是全部者」,即文件或目錄的全部者。
g 表示」同組(group)用戶,也就是全部者所在的組羣」,即與文件屬主有相同組ID的全部用戶。
o 表示」其餘(others)用戶,但不是u和g」。
a 表示」全部(all)用戶,也就是包括u,g和o」。它是系統默認值。
設置mode所表示的權限可用下述字母的任意組合:
- 沒有權限,即相應的權限尚未被授予,對應數字0。
r 可讀,對應數字4。
w 可寫,對應數字2。
x 可執行,對應數字1。
t 保存程序的文本到交換設備上。
X 只有目標文件對某些用戶是可執行的或該目標文件是目錄時才追加x 屬性。
s 在文件執行時把進程的屬主或組ID置爲該文件的文件屬主。方式」u+s」設置文件的用戶ID位,」g+s」設置組ID位。
行動:
+ 表示添加某個權限
- 表示刪除某個權限
= 表示使之成爲惟一的權限,即賦予給定權限並取消其餘全部權限(若是有的話)
文件名:
以空格分開的要改變權限的文件列表,支持通配符。

例如:把目錄/his及其下的全部文件和子目錄的屬主改爲wang,屬組改爲users。
chown –R wang.users /hislinux


chmod命令詳細說明

chmod 改變文件的權限,改變是對三種權限的累加,例如,r=4,w=2,x=1
own 4+2+1=7
group 4+2+1=7
other 4+2+1=7
命令爲chmod 777 文件名字
使用符號改變文件權限,chmod a+w 名字,chomod a-w 文件名,chomod u=rw,go=rw等用法,例如: -rw-r–r–
普通文件,文件主組用戶其餘用戶是文件sobsrc.tgz 的訪問權限,表示sobsrc.tgz是一個普通文件;sobsrc.tgz的屬主有讀寫權限;與sobsrc.tgz屬主同組的用戶只有讀權限;其餘用戶也只有讀權限。
肯定了一個文件的訪問權限後,用戶能夠利用Linux系統提供的chmod命令來從新設定不一樣的訪問權限。也能夠利用chown命令來更改某個文件或目錄的全部者。利用chgrp命令來更改某個文件或目錄的用戶組。

在一個命令行中可給出多個權限方式,其間用逗號隔開。例如:chmod g+r,o+r 使同組和其餘用戶對文件example 有讀權限。
例如,若是想讓某個文件的屬主有」讀/寫」二種權限,須要把4(可讀)+2(可寫)=6(讀/寫)。web

(1)文字設定法:
例1:$ chmod a+x sort
即設定文件sort 的屬性爲:文件屬主(u)增長執行權限;與文件屬主同組用戶(g)增長執行權限;其餘用戶(o)增長執行權限。
例2:$ chmod ug+w,o-x text
即設定文件text的屬性爲: 文件屬主(u)增長寫權限;與文件屬主同組用戶(g)增長寫權限;其餘用戶(o)刪除執行權限。
例3:$ chmod u+s a.out
假設執行chmod後a.out 的權限爲(能夠用ls –l a.out命令來看): -rws–x–x 1 inin users 7192 Nov 4 14:22 a.out而且這個執行文件要用到一個文本文件shiyan1.c,其文件存取權限爲」-rw——-」,即該文件只有其屬主具備讀寫權限。當其餘用戶執行a.out這個程序時,他的身份因這個程序暫時變成inin(因爲chmod命令中使用了s選項),因此他就可以讀取shiyan1.c這個文件(雖然這個文件被設定爲其餘人不具有任何權限),這就是s 的功能。
所以,在整個系統中特別是root自己,最好不要過多的設置這種類型的文件(除非必要)這樣能夠保障系統的安全,避免由於某些程序的bug而使系統遭到入侵。
例4:$ chmod a-x mm.txt
$ chmod -x mm.txt
$ chmod ugo-x mm.txt
以上這三個命令都是將文件mm.txt 的執行權限刪除,它設定的對象爲全部使用者。 數據庫


(2)數字設定法:
例1:$ chmod 644 mm.txt
$ ls -l
即設定文件mm.txt的屬性爲:
-rw-r–r–1 inin users 1155 Nov 5 11:22 mm.txt
文件屬主(u)inin 擁有讀、寫權限
與文件屬主同組人用戶(g)擁有讀權限
其餘人(o)擁有讀權限
例2:$ chmod 750 wch.txt
$ ls -l
-rwxr-x— 1 inin users 44137 Nov 12 9:22 wchtxt
即設定wchtxt這個文件的屬性爲:
文件主本人(u)inin 可讀/可寫/可執行權
與文件主同組人(g)可讀/可執行權
其餘人(o)沒有任何權限 apache


Linux下Web 目錄和文件安全權限設置

在Linux下,web 目錄和文件權限必須從總體上考慮系統的安全。通常狀況下,對目錄,須要設置r(讀取)和x(執行)權限,有的目錄同時還須要w(寫入權限);對文件,須要r(讀取),有的文件須要w(寫入)權限或x(執行)權限。
在Linux系統中,使用命令umask設置建立文件或目錄的默認rwx權限,系統默認的umask設置是022,這個權限的計算至關於文件、目錄權限的掩碼,例如此時建立的目錄權限755(rwxr-xr-x),那麼其umask權限至關於相對777的掩碼022;而此時建立的文件權限爲644 (rw-r–r–),其umask權限至關於相對666的掩碼022。
固然,這樣的權限設置很不安全,同一臺server上的不一樣用戶(可能相同也可能不一樣用戶組)/虛擬主機用戶可以互相窺探到對方的源碼,umask值必須修改的比較嚴格,以使得除root權限以外,不能隨意互相窺探其餘人的源碼、數據庫資料等。
設置方法是:去掉同用戶組和其餘用戶組的 r(讀取)權限,具體作法是設置目錄權限爲500(讀取+執行)同時文件權限爲400(讀取),此時umask應設置爲277,設置目錄權限爲700(讀取+寫入+執行)同時文件權限爲500(讀取+執行),此時umask應設置爲177。
例如對於後者,咱們可使用命令 umask 177 設置當前對話下的默認目錄、文件建立權限,若是要永久設置,就要修改/root/.bash_profile 以及全部用戶home 的錄下的.bash_profile文件,將其中的umask 022改成umask 177。centos

從以上能夠看出,若是要設置較爲安全的目錄、文件權限,幾個基本原則就是:
一、儘量減小web路徑下可寫入目錄的數量。
二、文件的寫入和執行權限只能選擇其一,避免同時出現寫入和執行權限。緩存


網站文件最小權限設置方法

一、假如web服務器是apache,那麼用戶訪問web頁面的時候,就是經過apache服務(httpd)的全部者的身份進行訪問,因此要將 apache也就是httpd服務的全部者和全部組設爲apache或者自定用戶,不要用root,這個通常安裝的時候就會有默認設置。
二、網站程序的全部者不要和apache服務的全部者同樣,若是同樣就至關於給了普通訪問者對web文件的全部操做權!一旦web程序有漏洞,那就 over了!默認通常是root,儘可能改成其餘用戶,好比本身創建一個daemon,切記不要和apache服務的全部者同樣。 三、對於網站根目錄權限,按照最小權限的原則,應設置爲755
四、對於緩存目錄或者上傳目錄例如緩存目錄:caches目錄,因爲此目錄必需要有寫權限,也就是目錄同是有rwx三個權限,這時候能夠直接創建一個 caches空目錄,而後chown daemon.daemon ./caches,就是把caches全部者、全部組改成自定義的daemon就ok了,這樣若是訪問web頁面,就會以apache的身份進入 caches創建緩存目錄及文件,默認系統都是以最小權限創建!
五、對於普通目錄,最小權限爲755,普通用戶不給寫權限
六、對於普通文件,最小權限爲644,普通用戶不給執行權限 總而言之,言而總之就是:目錄不要給寫權限,文件不要給執行權限(除非特殊狀況,如目錄要上傳)安全


簡單介紹網站目錄文件權限的基本設定

咱們假設http服務器運行的用戶和用戶組是www,網站用戶爲centos,網站根目錄是/home/centos/web。
一、咱們首先設定網站目錄和文件的全部者和全部組爲centos,www,以下命令:chown -R centos:www /home/centos/web
二、設置網站目錄權限爲750,750是centos用戶對目錄擁有讀寫執行的權限,這樣centos用戶能夠在任何目錄下建立文件,用戶組有有讀執行權限,這樣才能進入目錄,其它用戶沒有任何權限。 find -type d -exec chmod 750 {} \;
三、設置網站文件權限爲640,640指只有centos用戶對網站文件有更改的權限,http服務器只有讀取文件的權限,沒法更改文件,其它用戶無任何權限。 find -not -type d -exec chmod 640 {} \;
四、針對個別目錄設置可寫權限。好比網站的一些緩存目錄就須要給http服務有寫入權限。例如discuz x2的/data/目錄就必需要寫入權限。find data -type d -exec chmod 770 {} \;bash


參考文章:

linux下爲目錄和文件設置權限 (http://blog.csdn.net/lenix/article/details/7548325)
linux下的文件權限與目錄配置 (http://www.cnblogs.com/woaiyy/archive/2012/06/03/2532508.html)
linux網站目錄最小權限分配-linux讀寫執行權限區別 (http://blog.csdn.net/kunatnet/article/details/41868353)
linux文件權限查看及修改(實用) (http://blog.csdn.net/zljjava/article/details/46691387)
linux查看及修改文件權限以及相關 (http://www.cnblogs.com/wenqiangwu/archive/2013/09/12/3317030.html)

 

版權聲明:本文采用署名-非商業性使用-相同方式共享(CC BY-NC-SA 3.0 CN)國際許可協議進行許可,轉載請註明做者及出處。
本文標題:Linux系統Web網站目錄和文件安全權限設置
本文連接:http://www.cnblogs.com/sochishun/p/7413572.html
本文做者:SoChishun (郵箱:14507247#qq.com | 博客:http://www.cnblogs.com/sochishun/)發表日期:2017年9月2日

相關文章
相關標籤/搜索