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

2021-06-06 09:53:55 字數 3161 閱讀 9698

**: 

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

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

一、提綱

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

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

2.   檔案屬性;

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

4.   ls命令的使用詳解; 

二、使用者和使用者組

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

主要體現在兩個方面:

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

三種: 讀、寫、執行。

2.   檔案的訪問方式:

三種: owner/group/other。

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

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

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

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

另外:在linux系統中,

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

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

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

三、  檔案屬性

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

[c-sharp]view plain

copy

print?

-rwxr-xr-x 1 root root 7 04-21 12:47 test.txt  

①     ②  ③   ④  ⑤     ⑥        ⑦  

其中各個部分的含義如下圖:

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

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

" d ":   表示是乙個 目錄(directory);

" - ":   表示乙個 檔案;

" l ":    表示乙個連線檔案(link file);  

第一組為「擁有者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 的含義與一般檔案略有不同。

--- 建立新的檔案和目錄;

--- 刪除檔案和目錄;

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

--- 移動檔案和目錄;

在《鳥哥的linux私房菜》書中,提供了很好的例子,截圖如下:

五、    ls命令的使用詳解

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

常用的引數有

[c-sharp]view plain

copy

print?

命令格式:  

ls [-aadffhilnrrst] 目錄名稱  

-a  :全部的檔案,連同隱藏檔案( 開頭為 . 的檔案) 一起列出來;  

-a  :全部的檔案,連同隱藏檔案,但不包括 . 與 .. 這兩個目錄;  

-d  :僅列出目錄本身,而不是列出目錄內的檔案資料;  

-f  :直接列出結果,而不進行排序 (ls 缺省會以檔名排序!);  

-f  :根據檔案、目錄等資訊,給予附加資料結構,例如:  

*:代表可執行檔案; /:代表目錄;   

-l  :長資料序列出,包含檔案的屬性與許可權等等資料;  

-n  :列出 uid 與 gid 而非使用者與群組的名稱;  

-r  :連同子目錄內容一起列出來,等於該目錄下的所有檔案都會顯示出來;  

-s  :按照檔案容量大小排序,而不是用檔名稱排序;  

-t  :按照時間排序,而不是用檔名。  

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

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

Linux檔案屬性和許可權

linux檔案屬性 第一欄 表示檔案型別和許可權 檔案的型別 d 目錄 檔案 l 鏈結檔案 b 可儲存裝置 c 可輸入裝置 第一組 表示擁有者許可權 第二組 表示該組的許可權 第三組 表示該組外的許可權 第二欄 表示有多少個檔名鏈結到次節點 第三欄 表示這個檔案的擁有者 第四欄 表示這個檔案的所屬組...

Linux修改檔案屬性和許可權

來自鳥哥的linux私房菜 在linux下,和檔案有關的身份有使用者組,所有者,others,這三種身份又有三種許可權,即r 讀 w 寫 x 執行 首先,檔案許可權描述由10個字元組成,例如,rwxr xr drwxr xr x 其中,第乙個字元的含義為 d 表示目錄 表示檔案 l 表示連線檔案 b...

Linux 修改檔案屬性和許可權

檔案屬性使用10個字元標識 第乙個字元的含義為 常見 剩餘的9個字元分為三組 檔案所有者 使用者組 others 來描述不同成員對該檔案的操作許可權 命令 chgrp修改檔案install.log的所屬使用者組為users chgrp users install.log 檢視所有使用者組 cat e...