linux的檔案屬性和許可權學習——分析ls命令結果

來源:互聯網
上載者:User

最近閱讀《鳥哥的linux私房菜》,確實是一本好書,使自己在檔案屬性和許可權方面有了較深的理解,總結如下。

(註:本篇博文的圖片來自於《鳥哥的linux私房菜》一書)

一、提綱

本篇博文主要包含以下幾個部分:

1.   使用者和使用者組的概念;

2.   檔案屬性;

3.   目錄與一般檔案的區別;

4.   ls命令的使用詳解;

二、使用者和使用者組

     linux的系統是“多使用者、多任務環境”的,也就是說“linux系統允許多個使用者同時使用系統,並且可以同時執行不同的任務”。所以為了確保各個使用者的檔案安全, linux系統具有非常嚴格的檔案許可權管理機制。

主要體現在兩個方面:

1.   對檔案操作的許可權:

三種: 讀、寫、執行。

2.   檔案的訪問方式:

三種: owner/group/other。

讀、寫、執行的操作許可權比較容易理解,主要是檔案的訪問方式。它們的含義如下:

擁有者 owner
也就是檔案的所有者,通常是建立檔案的使用者。在linux系統中,每個檔案都有一個所有者。每一個使用者都會被分配唯一的uid。

使用者組
一個使用者組包含若干使用者。值得注意的是:一個使用者也可以屬於多個使用者組,也可以不屬於任何使用者組。每一個使用者組都會被分配唯一的gid。

其他人
 對於一個檔案來說,如果某使用者既不是owner,也和owner不在同一個使用者組,那麼該使用者對於檔案來說就是其他人。

另外:在linux系統中,

         ①各個使用者帳號的資訊都儲存在/etc/passwd檔案中;

         ②密碼儲存在/etc/shadow檔案中;

         ③使用者組資訊儲存在/etc/group檔案中。

三、  檔案屬性

在命令列裡執行命令"ls -al ",我們會看到一個詳細的列表,列表的每一行的形式為:

 

其中各個部分的含義如:

 

把從左至右依次編號,各個欄位的含義如下:

1.   檔案的屬性,一共有10個屬性,具體含義見:

 

  第一個屬性,表示這個檔案的類型,常見的有:檔案、目錄或串連檔案等。
" d ":   表示是一個 目錄(directory);

" - ":   表示一個 檔案;

" l ":    表示一個串連檔案(link file);  

後九個屬性中,每三個位一組,"r"表示可讀(read)、"w"表示可寫(write)、"x"表示可執行(excute)。
第一組為“擁有者owner的許可權”;

第二組為“同使用者組的許可權”;

第三組為“其他人的許可權”;

綜合這兩點:上面圖中的的10個屬性含義為:是一個檔案,這個檔案的“擁有者”可讀、可寫、可執行, “同使用者組的人”也是可讀、可寫、可執行,但是“其他人”沒有任何許可權。

2.   第二列表示連結佔用的節點,這個主要是和link node有關,初學linux的可以先不用研究。

3.   第三列表示檔案的“擁有者”,即owner。

4.   第四列表示擁有者的“使用者組”。

5.   第五列表示這個檔案的大小。

6.   第六列表示檔案的最後“修改時間”(即modification time, 簡稱mtime),對於新建立的檔案就是指其建立的時間。     

補充:linux系統“檔案時間”主要包括三個內容:

修改時間(modification time, 簡稱mtime):當前檔案“內容資料”更改時,這個屬性被更新。使用ls命令顯示的時間就是“修改時間mtime ”。

狀態時間(status time, 簡稱ctime):當檔案狀態(status)改變時,這個屬性被更新。例如:更新檔案的許可權和屬性時。

訪問時間(access time, 簡稱atime):當讀取檔案內容時,這個屬性被更新。

 

注意:如果只是變更檔的內容,“狀態時間ctime ”會改變,但是“修改時間mtime”是不會改變,因為檔案的內容資料並沒有變化。

7.   第七列就是檔案的檔案名稱。注意:在linux系統中,如果一個檔案名稱以"."開頭,那麼這個檔案就是隱藏檔案,這點與windows不同。

四、  目錄與一般檔案的區別

在linux中,目錄也屬於檔案。針對目錄檔案,r/w/x 的含義與一般檔案略有不同。

r  (read contents in directory):擁有這個許可權,就能夠讀取目錄結構,也就是可以使用ls命令將目錄內容列出來。
w   (modify contents of directory):擁有這個許可權,可以更改目錄結構。常見的操作為:
--- 建立新的檔案和目錄;

--- 刪除檔案和目錄;

--- 重新命名檔案和目錄;

--- 移動檔案和目錄;

x  (access directory):決定這能否進入目錄。如果使用的賬戶對某個目錄沒有x許可權,那麼使用cd命令的時候,就無法進入目錄。
在《鳥哥的linux私房菜》書中,提供了很好的例子,如下:

 

 

 五、    ls命令的使用詳解

 ls就是list的縮寫,用於顯示檔案和目錄。這個命令時用的非常多的一條命令,類似於windows中的dir(現在不少linux版本中也提供了dir命令),其中dir是directory的縮寫。

常用的參數有

view plaincopy to clipboardprint?
 命令格式:  
      ls [-aAdfFhilnrRSt] 目錄名稱  
-a  :全部的檔案,連同隱藏檔案( 開頭為 . 的檔案) 一起列出來;  
-A  :全部的檔案,連同隱藏檔案,但不包括 . 與 .. 這兩個目錄;  
-d  :僅列出目錄本身,而不是列出目錄內的檔案資料;  
-f  :直接列出結果,而不進行排序 (ls 預設會以檔案名稱排序!);  
-F  :根據檔案、目錄等資訊,給予附加資料結構,例如:  
      *:代表可執行檔; /:代表目錄;   
-l  :長資料串列出,包含檔案的屬性與許可權等等資料;  
-n  :列出 UID 與 GID 而非使用者與群組的名稱;  
-R  :連同子目錄內容一起列出來,等於該目錄下的所有檔案都會顯示出來;  
-S  :按照檔案容量大小排序,而不是用檔案名稱排序;  
-t  :按照時間排序,而不是用檔案名稱。 
 命令格式:
      ls [-aAdfFhilnrRSt] 目錄名稱
-a  :全部的檔案,連同隱藏檔案( 開頭為 . 的檔案) 一起列出來;
-A  :全部的檔案,連同隱藏檔案,但不包括 . 與 .. 這兩個目錄;
-d  :僅列出目錄本身,而不是列出目錄內的檔案資料;
-f  :直接列出結果,而不進行排序 (ls 預設會以檔案名稱排序!);
-F  :根據檔案、目錄等資訊,給予附加資料結構,例如:
      *:代表可執行檔; /:代表目錄;
-l  :長資料串列出,包含檔案的屬性與許可權等等資料;
-n  :列出 UID 與 GID 而非使用者與群組的名稱;
-R  :連同子目錄內容一起列出來,等於該目錄下的所有檔案都會顯示出來;
-S  :按照檔案容量大小排序,而不是用檔案名稱排序;
-t  :按照時間排序,而不是用檔案名稱。

 鳥哥對於ls命令使用的例子為:

 

 

 

 

另外:在很多linux版本中,由於"ls -l"非常常用,所以常常可以簡寫為"ll"(兩個字幕L的小寫形式)。

 

本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/daheiantian/archive/2010/10/29/5974962.aspx

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.