[ 永遠的UNIX::UNIX技術資料的寶庫 ]   GB | BIG5

首頁 > 系統管理 > 其它 > 正文
文件系統
本文出自: 作者: 何斌武 (hbwork@dlut.edu.cn) (2001-08-25 09:05:00)

UNIX文件系統控制文件和目錄中的信息以何種方式存在磁盤及其他輔助介質上。它 
控制每個用戶可以訪問何種信息及如何訪問。因此它是增強UNIX系統安全性的最基本 
的工具之一。 

存儲在UNIX文件系統中的信息被安排成目錄和文件的樹形結構。樹形結構由在一個總 
目錄中的目錄和子目錄構成,總目錄被稱之為根目錄(root)。每一個目錄內可以包含 
子目錄和其他項目,如文件、指向其他文件系統的指針(符號連接)、表示設備的邏 
輯名稱(如/dev/tty)以及其他的類型(proc等). 

文件 
UNIX系統中每一個用戶可訪問的事物均可以被表示為文件系統中的一個“文件” 
包括進程和網絡連接。每一個文件至少具有一個文件名,一個擁有者,以及訪問權限 
和其他的屬性。這些屬性被存放在文件系統的i節點(index node)上,這是基本文件 
系統的條目。i節點存放除文件名外有關文件系統的任何東西。只有文件名存放在目錄 
內,並通過指針與i節點聯系。 
目錄 
目錄是文件系統中的一個專門的條目。一個目錄實際上是文件名和i節點的列表。文件 
名可以由任意字符的字符串組成,但不能包含/和null字符。 

與文件名相聯系的是數字指針,它實際上是一個i節點在磁盤上的索引。一個i節點包 
含文件系統中一個文件條目的信息。 

目錄中只包含文件名和i節點索引數,不存放任何需要保護的信息,其作用類似一個 
文件名與i節點之間的映射關系的簡單的關系數據庫。多個文件可以指向同一個i節點。 
同樣多個目錄也可以指向同一個i節點。 

rm不一定能真正刪除一個文件,當i節點的連接值為0時才真正刪除文件。 

每一個目錄都包含有. 和 ..兩個目錄。 

i節點 
UNIX系統中應用一個被稱之為i節點(inode)的結構來存儲文件系統中的各個級成部分 
的管理信息。i節點駐留在硬盤上,沒有自己的名字,但具有索引數,用以指向它們在 
i節點數組中的位置。 

每個i節點通常包括: 
. 該數據條目的內容在磁盤上的位置 
. 該數據條目的類型(文件、目錄、符號連接等) 
. 該數據條目的字節數目 
. 該節點最一次被修改的時間(ctime) 
. 該文件最一次被修改的時間(mtime) 
. 該文件最一次被訪問的時間(atime) 
. 該文件對應的文件名數目(連接數) 
. UID 
. GID 
. MODE bit 

當前目錄和路徑 
絕對路徑 VS 相對路徑 

使用ls命令 
ls -a 
ls -lF (Total行指出了目錄中全部文件所佔據的KB數。) 
ls -aF (* / = @) 
ls -l (mtime) 
ls -lu (atime) 
ls -lc (ctime) 

文件授權 (ls -l輸出) 

*** 可執行位僅對可執行文件有意義。 

LINUX中必須即擁有執行權限也擁有讀權限時才能夠執行相個script命令。 

使用chmod命令 

chmod [Rfh] [agou] [+-=] [rwxXstugo] filelist 


權限 
r read 
w write 
x execute(or access for directories) 
X 僅當文件是一個目錄或一個已經設備了某些執行位的文件時,設置執行權限 
s set user or group id 
t save program text on swap device(Sticky) 
u 從擁有者的授權中刪除訪問權 
g 從用戶組的授權中刪除訪問權 
g 從其他用戶的授權中刪除訪問權 

8進制的文件屬性 
4000 SUID 
2000 SGID 
1000 sticky 
0400 -r-------- 
0200 --w------- 
0100 ---x------ 
0040 ----r----- 
0020 -----w---- 
0010 ------x--- 
0004 -------r-- 
0002 --------w- 
0001 ---------x 


umask命令 
umask功能的接口是在sh,ksh,csh shell程序內的一個內在的命令!?
默認文件建立模式: 0666 
計算umask值的一個簡便方法:在umask中,2屏蔽寫準許位,7屏蔽所有權限。 

使用目錄權限 
UNIX將目錄的內容存放在普通的文件中。但目錄的權限與普通文件有所區別。 

r 讀 可用opendir() readdir()或ls找出那個文件在這個目錄內 
w 寫 可以新建、刪除或重命名在這個目錄內的文件或子目錄 
x 執行 可以stat這個目錄的內容(如確定目錄的所有者,和在目錄中的文件的長 
度). 僅在設置此位時才能使此目錄成為當前的目錄或打開在該目錄(或 
它的子目錄)內的文件。 

常用的目錄權限 
0755 / /usr/bin 任何人可以看到目錄的內容,但只有擁有者和root才能改變它 
1777 /tmp /var/mail 任何用戶可以在該目錄內建立文件,但不能刪除其他用戶的 
文件 
0700 $HOME 用戶可以訪問自己的主目錄的內容,但其他用戶則不可。 


刪除不恰當的文件 

$rm ./-foo 
$rm - -foo 
$rm -i * 

SUID 
passwd su 

SUID/SGID/sticky 
---s------ SUID 執行此SUID的進程的有效UID被設置為程序擁有者的UID 
------s--- SGID 
---------t sticky(一般只用目錄) 
---S------ SUID 設置SUID但不設置相應位的執行位 

*** 不要寫SUID的Shell Script, 必要時改用perl(taintperl) 


找到所有的SUID和SGID文件 

find / \( -perm -004000 -o -perm -002000 \) -type f -print 
OR ( Except for NFS ) 
find / \( -local -o -prune \) \ 
\(-perm -004000 -o -perm -002000 \) -type f -print 

在被mount的文件系統中關閉SUID和SGID 

mount -o nosuid ..... (一般用NFS) 


設備文件 
設備文件是導致UNIX流行和靈活的原因之一。 
/dev 目錄 
/dev/null 
/dev/kmem 偽設備 
/dev/MAKEDEV 

大多數設備文件應不允許普通用戶讀寫. 

非法的設備文件 
不在/dev目錄下,可能為非法侵入者提供可利用入口: 
find / \( -type c -o -type b \) -exec ls -l {} \; 

find / \! -type f -a \! -type d -exec ls {} \; 
(包含符號連接,PIPE等) 

chown 改變文件所有者 

chgrp 改變文件的屬組 
(http://www.fanqiang.com)
    進入【UNIX論壇

相關文章
Sun Solaris 用戶手冊 -- 六.文件系統管理 (2001-10-03 12:00:00)
中文man手冊:df - 報告文件系統磁盤空間的使用情況 (2001-09-17 15:00:01)
中文man手冊:chattr--修改文件在Linux第二擴展文件系統(E2fs)上的特有屬性 (2001-09-15 08:05:00)
FreeBSD系統中procfs文件系統存在多個安全漏洞 (2001-09-02 09:05:01)
充分認識和利用 /proc 文件系統 (2001-08-28 07:00:00)
文件系統 (2001-08-25 09:05:00)
工作站文件系統及其應用 (2001-08-02 12:00:01)
怎樣添加ReiserFS文件系統 (2001-07-21 07:05:00)
ReiserFS文件系統 (2001-07-20 13:30:00)
網絡管理員指南 -11.網絡文件系統NFS -4>自動mount (2001-07-16 16:10:01)

===更多相關===
 

★  樊強制作 歡迎分享  ★