1. 程式人生 > >Linux下目錄和檔案的許可權

Linux下目錄和檔案的許可權


在Linux系統內檔案有三種身份(owner、group、others),而且每種身份有三種許可權(r(read)、w(write)、x(execute)),我們可以使用chmodchownchgrp去修改這 些許可權,也可以用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

的目錄document,對它進行cdlsmkdirrm等操作都沒問題,去掉它的r許可權之後,我們企圖顯示該目錄的檔案列表,發現做不到,原因是許可權不夠。


再次去掉該目錄的r許可權,進入該目錄,當建立一個檔案(或目錄)時,終端提示許可權不夠,不僅如此,它還不允許我們對檔案進行刪除、移動、重新命名操作。


當去掉該目錄的x許可權後,我們無法進入該目錄。

對於目錄,我們如果把它比作一個大房子,裡面的東西比作桌子椅子(大房子裡也可以套小房間,不是嗎?)等等話,那麼x許可權則關係到我們能否進入該房子,而w許可權關係到我們能否挪動該房子裡的東西,比如移走桌子,新增椅子到裡面等等,而r許可權則和我們能否看到房子裡的東西有關,沒有r許可權就相當於我們在房子裡閉著眼睛,只是看不到裡面的東西,但你仍然可以挪動。

通過以上我們瞭解到
1. 擁有目錄的r許可權,我們可以通過ls檢視該目錄下的檔案(目錄)名列表資訊。
2. w許可權對於目錄來說很強大,擁有目錄的w許可權意味著你可以:建立新的檔案與目錄、刪除已經存在的檔案和目錄(不論該檔案你的許可權如何)、重新命名已存在的檔案和目錄、移動檔案和目錄的位置。
3. 目錄的x許可權代表著你能否進入該目錄成為工作目錄的用途,所謂工作目錄就是你當前所在的目錄。舉個例子:當你登入Linux系統時,你所在的主資料夾就是你當下的工作目錄。

成於堅持,敗於止步!