Linux下目錄和檔案的許可權
在Linux系統內檔案有三種身份(owner、group、others),而且每種身份有三種許可權(r(read)、w(write)、x(execute)),我們可以使用chmod
、chown
、chgrp
去修改這 些許可權,也可以用ls -l
檢視他們的許可權與屬性,那麼這些許可權對於一般檔案和目錄檔案有什麼不同呢。
檔案的許可權
一般檔案可以記錄資料。計算機中檔案有一般文字檔案(txt、word等)、圖片、可執行檔案(exe)、等等,那麼許可權對於這些檔案來說有什麼意義? 如下:
1. 讀r(read): 可以讀取此檔案的實際內容,比如文字檔案的文字內容等。
2. 寫w(write): 可以編輯、修改檔案的內容(不包括刪除該檔案)。
3. 執行x(execute): 代表該檔案有被系統執行的許可權。
如圖建立一個test.c
檔案,預設的許可權為:擁有者和使用者組都有讀、寫許可權,其它只有讀的許可權。
我們用編輯器給其寫入內容,並且用cat
讀取它的內容發現都沒問題(此處及以下皆以擁有者的身份操作)。
去掉擁有者的r
許可權,當再次cat
它時,終端提醒我們許可權不夠。
去掉擁有者的w
許可權,當用編輯器給它寫內時,編輯器提醒許可權不足(當然你可以強制寫入)。
對於檔案的x
許可權,我們先生成一個a.out
檔案,然後執行它,沒有問題。
但是去掉它的x
許可權後,當我們想執行它時,發現許可權不夠。
通過以上,我們大概可以總結出關於檔案許可權的幾個特點:
1. 讀檔案(用cat
r
許可權。 2. 對檔案寫入內容(編輯、修改內容),需要檔案的
w
許可權(在某些情況下沒有“寫“許可權時,可以強制寫入)。 3. 一個檔案能否執行和你是否擁有該檔案的
x
許可權有關,這一點和windows有所區別,在windows下,一個檔案的執行能力通過“副檔名”來判斷,如: .exe
, .html
等。 4. 檔案中記錄了資料,對於檔案的讀寫許可權,主要是針對檔案的內容而言,如
cat
顯示檔案的內容,編輯修改檔案的內容。
目錄的許可權
目錄主要要記錄檔名列表,目錄和檔案有著緊密的聯絡,那麼目錄的r、w、x三種許可權有什麼意義呢?
先建立一個預設許可權為rwx rwx r-x
cd
、ls
、mkdir
、rm
等操作都沒問題,去掉它的r
許可權之後,我們企圖顯示該目錄的檔案列表,發現做不到,原因是許可權不夠。
再次去掉該目錄的r
許可權,進入該目錄,當建立一個檔案(或目錄)時,終端提示許可權不夠,不僅如此,它還不允許我們對檔案進行刪除、移動、重新命名操作。
當去掉該目錄的x
許可權後,我們無法進入該目錄。
對於目錄,我們如果把它比作一個大房子,裡面的東西比作桌子椅子(大房子裡也可以套小房間,不是嗎?)等等話,那麼x
許可權則關係到我們能否進入該房子,而w
許可權關係到我們能否挪動該房子裡的東西,比如移走桌子,新增椅子到裡面等等,而r
許可權則和我們能否看到房子裡的東西有關,沒有r
許可權就相當於我們在房子裡閉著眼睛,只是看不到裡面的東西,但你仍然可以挪動。
通過以上我們瞭解到:
1. 擁有目錄的r
許可權,我們可以通過ls
檢視該目錄下的檔案(目錄)名列表資訊。
2. w
許可權對於目錄來說很強大,擁有目錄的w
許可權意味著你可以:建立新的檔案與目錄、刪除已經存在的檔案和目錄(不論該檔案你的許可權如何)、重新命名已存在的檔案和目錄、移動檔案和目錄的位置。
3. 目錄的x
許可權代表著你能否進入該目錄成為工作目錄的用途,所謂工作目錄就是你當前所在的目錄。舉個例子:當你登入Linux系統時,你所在的主資料夾就是你當下的工作目錄。
成於堅持,敗於止步!