檔案系統
Home Up

 

檔案系統:
實體上而言(Physically),UNIX中所謂”檔案系統”,相當於DOS中的partition。一個獨立的檔案系統擁有獨立的file table(inode table),一個磁碟中,可以切割成一個上的檔案系統。但在邏輯上而言(Logically),一個UNIX中,僅有一個檔案系統,亦即,一個UNIX作業系統中僅有一個“根目錄“,一切檔案結構依此根目錄,往下發展。

檔案系統架構:
UNIX檔案系統和DOS一樣,採階層式(Hierarchy)或樹狀(Tree)之目錄架構,最上一層目錄稱為根目錄(root),每一目錄中均可含有檔案與子目錄,路徑名稱中目錄與目錄之分隔符號為”/”。

UNIX檔案種類:

 一般檔案(ordinary files)
原始程式、文件、資料…等。

目錄檔案(directory files)
目錄檔用於涵括檔案,使檔案系統更加簡潔。

特殊檔案(Special device files)
代表某種特殊硬體設備,如:印表機、磁碟機、磁帶機…等,通常存在於/dev目錄之下。此種檔案類型又可區分為區塊(block)及字元(Character)兩種。(UNIX作業系統下,所有設備均可視為檔案,並依檔案方式運作)

符號鏈結檔(Symbolic link)
內容為一指標,指向檔案名稱所在(非檔案內容儲存所在) 。類似檔案別名(But more tham that !!)。

UNIX檔案命名原則:

可用任何字元來命名(“/”除外),然特殊字元(*?^<…),除”.”外最好避免使用,免生誤解。

早期UNIX檔名長度限制不可超過14個字元,現今UNIX系統則可允許檔名長度至256個字元。

UNIX檔案系統中,無所謂延伸檔名,對UNIX而言檔名:file.a.b.c.kkk是合法的。

以”.”開頭之檔名,為隱藏檔,需用”ls -l “才可看到,如.profile。

 一個檔案可具有一個以上的檔名,此稱檔案多重鏈結。

UNIX特殊目錄與路徑名稱:

工作目錄(working directory):
目前所在目錄,可以pwd指令顯示之。

家目錄(home directory):
帳號建立之初,管理者賦予使用者之初始目錄;通常這是使用者進入系統之後的第一個工作目錄。”cd”不加任何參數可使使用者回至家目錄。

“.” & ” ..”:
“.”代表目前所在目錄,”..”則代表上一層目錄。

根目錄(root): /
整個UNIX檔案系統最上層之目錄。

絕對路徑:
以”/”起頭之路徑名稱,如/usr/var/spool/mqueue。UNIX中,每一個目錄或檔案,皆有一個唯一的絕對路徑與之對應。

相對路徑:
起頭不是”/”的路徑,相對路徑是以目前工作目錄為起點的檔案或路徑描述。如:假設目前工作目錄為/home/center,則相對路徑”work1/papers/lect”與絕對路徑”/home/center/work1/papers/lect”的表示方法,所指的檔案是相同的。

檔案相關訊息:
UNIX系統中對於每一個檔案,均維護一些檔案屬性相關訊息,透過這些訊息,可方便使用者對於檔案之管理與維護,這些訊息包括至少包括以下之項目:

檔案模式
- : 一般檔案
d:目錄
b:特殊檔案(區塊)
c:特殊檔案(字元)
l:符號連結檔

檔案存取權限
使用者區分:檔案擁有者、群組、其他
權限區分:讀( r )、寫( w )、執行( x )
UNIX共用九個字元來描述三種使用者之三種權利。

鏈結個數
指向此一檔案之檔案名稱(inode)之個數,此鏈結個數不包含符號鏈結。

檔案擁有者
擁有此一檔案之使用者名稱。

群組
此一檔案所屬之群組。

檔案大小
單位為byte。

修改日期
此檔案最後一次被修改日期。

檔名
檔案名稱

Example
#ls -l /etc/lilo.conf

- rw- r-- r-- root  root  268 Jun 28 13:05  /etc/lilo.conf
這是一個檔案  擁有者權限  群組權限  其他人權限 鏈結個數    修  擁有者 群組 檔案大小











檔案鏈結(File Link)



UNIX系統事實上是以所謂的inode號碼來識別檔案(用ls -i,你可以看到每一個檔案的indoe number)。

利用檔案鏈結可以使一個檔案擁有多個檔名。

Hard Link
指令:ln file1 file2 
file1為已存在之檔案,file2則是以上指令所產生之檔案鏈結;Hard Link的結果是”在File Table中產生一個新的檔名,指向一個已存在的inode”。地位上file1與file2相同,file1與file2必須同時被刪除才能真正刪除原有之檔案。
Hard Link不允許跨過file system之鏈結。

Symbolic Link
指令:ln -s file1 file2
file1為已存在之檔案,file2則是以上指令所產生之符號鏈結;Symbolic Link的結果是” 在File Table中產生一個新的檔名file2,指向另一個已存在之檔名file2”。基本上刪除file2該檔案之內容便已被刪除,與file2是否存在無關。
Symbolic Link允許跨過file system之鏈結。

Example:

cc301:~/test> ls -l kerm*
-rwxrwxr-- 1 woody users 164 Feb 4 14:49 kerm*
cc301:~/test> ln kerm kerm1 ##產生一個Hard Link##
cc301:~/test> ls -l kerm* ##請注意link數之改變及兩個檔案的file size##
-rwxrwxr-- 2 woody users 164 Feb 4 14:49 kerm*
-rwxrwxr-- 2 woody users 164 Feb 4 14:49 kerm1*

cc301:~/test> ln -s kerm kerm2    ##產生一個Symbolic Link##
cc301:~/test> ls -l kerm*             ##請注意kerm2之表示方式與file size##
-rwxrwxr-- 2 woody users 164 Feb 4 14:49 kerm*
-rwxrwxr-- 2 woody users 164 Feb 4 14:49 kerm1*
lrwxrwxrwx 1 woody users 4 Feb 4 16:26 kerm2 -> kerm*

cc301:~/test> ls -il kerm*            ##請注意indoe number##
7134517 -rwxrwxr-- 1 woody users 164 Feb 4 14:49 kerm*
7134517 -rwxrwxr-- 1 woody users 164 Feb 4 14:49 kerm1*
7134520 lrwxrwxrwx 1 woody users 4 Feb 4 16:32 kerm2 -> kerm*

cc301:~/test> rm kerm
cc301:~/test> cat kerm2              ##刪除kerm後kerm2之內容亦隨之消失##
cat: kerm2: No such file or directory
cc301:~/test> cat kerm1              ##kerm1內容依然存在##

set line /dev/modem
set speed 38400
set modem hayes

.....

 

檔案存取保護:

並非所有UNIX版本均可達到美國國防部C2的安全標準(檔案所有者可以針對 本身所有之檔案,指定哪些檔案存取權力,可以給哪些人)。也就是說,並非所有的UNIX系統均具有ACL(Access Control List)之機構(AIX & HP-UX提供此一功能)。

UNIX檔案系統將使用者分成檔案擁有者、群組及其他三大類;存取權力則分成讀取( r )、寫入( w )及執行( x )三種;藉著使用者區分與存取權力之給予之組合,組成UNIX的檔案保護系統。

檔案擁有者
每一個檔均有一個擁有者(owner),僅有owner及super user可以更改檔案之存取保護模式(with command chmod, 說明容下文敘述),而一般則只有super user可以更改檔案之擁有者(with command “chown” )。

檔案存取權限說明
讀取(r):可讀取檔案內容,複製檔案內容。
寫入(w):可更改檔案內容、名稱(搬移檔案),刪除檔案。
執行(x):可執行檔案。(If it’s a executable file,包括shell program)

目錄存取權限說明
讀取( r ):可瀏覽目錄內容(ls directory)。
寫入( w ):可在目錄中建立或刪除檔案。
執行( x ):可搜尋此目錄,並可更改工作目錄(cd)至此目錄。” cat /var/spool/mqueue/syslog”這個指令的執行,就必須對/var/spool/mqueue這個目錄具有執行之權力。

檔案權限修改:

只有檔案擁有者及SuperUser可以更改檔案權限。(只有SuperUser可以更改檔案擁有者)

檔案權限修改指令 -- chmod,其語法如下:
chmod {a, u, g, o}{+,-}{r,w,x} filename(相對表示法)
or
chmod  x1x2xfilename(絕對表示法)
其中
a:所有User
u:檔案擁有者
g:群組
o:其他User
+:增加權力
-:減少權力
r:讀取
w:寫入
x1x2x3:x1、x2、x3均為“三個二進位數字所組成之十進位數字表示“(範圍0~7),x1表owner權限,x2表群組user權限,x3則表其他User之權限。例如755 (=111 101 101)表示檔案存取權限為: rwx r-x r-x。

Example

cc301:~/test> ls -l kerm
-rwxr-xr-x 1 woody users 164 Feb 4 14:49 kerm*
cc301:~/test> chmod g+w,o-x kerm (= chmod 774 kerm)
cc301:~/test> ls -l kerm

-rwxrwxr-- 1 woody users 164 Feb 4 14:49 kerm*
cc301:~/test>

 

建置及維護者:
國立中興大學 電算中心    吳賢明   woody@nchu.edu.tw
本網頁最近更新時間:2000/08/21 PM 03:56:52