文件系統--讀取/etc/passwd的順序

 /etc/passwd中的東東怎麼讀出來的呢?

首先我們列出各目錄的inode信息:
root@ubuntu:/home/jack# ll -di / /etc /etc/passwd
     2 drwxr-xr-x  23 root root  4096 2013-05-26 10:05 //
655364 drwxr-xr-x 132 root root 12288 2013-05-26 10:06 /etc/
665904 -rw-r--r--   1 root root  2201 2013-05-25 21:32 /etc/passwd
/etc/passwd 有關的目錄與檔案資料如上所示,通常一個 filesystem 的最頂層 inode 號碼會由 2 號開始。
1)/ 的 inode:
透過掛載點的資訊找到 /dev/hdc2 的 inode 號碼爲 2 的根目錄 inode,且 inode 規範的權限讓我們可以讀取該 block 的內容(有 r 與 x) ;
2)/ 的 block:
經過上個步驟取得 block 的號碼,並找到該內容有 etc/ 目錄的 inode 號碼 (1912545); 
3)etc/ 的 inode:
讀取 1912545 號 inode 得知 vbird 具有 r 與 x 的權限,因此可以讀取 etc/ 的 block 內容; 
4)etc/ 的 block:
經過上個步驟取得 block 號碼,並找到該內容有 passwd 檔案的 inode 號碼 (1914888); 
5)passwd 的 inode:
讀取 1914888 號 inode 得知 vbird 具有 r 的權限,因此可以讀取 passwd 的 block 內容; 
6)passwd 的 block:
最後將該 block 內容的資料讀出來。


發佈了160 篇原創文章 · 獲贊 16 · 訪問量 77萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章