?? 文件系統.htm
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0048)http://www.linuxforum.net/books/jy/M.924705143.A -->
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2800.1106" name=GENERATOR></HEAD>
<BODY><PRE>發信人: albin (阿樂斌), 信區: LINUX
標 題: LINUX選修課講義:文件系統
發信站: 碧海青天 (Wed Apr 21 23:35:36 1999), 轉信
版權聲明:
本文內容為大連理工大學LINUX選修課講義,歡迎大家轉載,但禁止使用本材料進行
任何商業性或贏利性活動。轉載時請保留本版權聲明。
作者:何斌武,hbwork@dlut.edu.cn,大連理工大學網絡中心,April 1999.
URL: ftp://ftp.dlut.edu.cn/pub/PEOPLE/albin/
------------------------------------------------------------------------------
文件系統
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 改變文件的屬組
--
[m[1;32m※ 來源:.碧海青天 bbs.dlut.edu.cn.[FROM: apple.dlut.edu.c][m
</PRE></BODY></HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -