**:
最近閱讀《鳥哥的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...