chap7-文件系統(tǒng)(正式)_第1頁
chap7-文件系統(tǒng)(正式)_第2頁
chap7-文件系統(tǒng)(正式)_第3頁
chap7-文件系統(tǒng)(正式)_第4頁
chap7-文件系統(tǒng)(正式)_第5頁
已閱讀5頁,還剩73頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第六章第六章 UNIX文件系統(tǒng)文件系統(tǒng)可從兩個角度觀察文件系統(tǒng)的性能:用戶是否便捷易用且文件訪問效率高;內(nèi)部結(jié)構(gòu)是否組織合理,可擴展,易實現(xiàn)。6.1 UNIX文件概念一般文件是字節(jié)序列,無結(jié)構(gòu)約束;特殊文件對硬件設(shè)備、管道、鏈接進行描述。系統(tǒng)用同樣的管理機制管理各種文件。6.2 UNIX的文件類型1. 普通文件以字節(jié)為單位的數(shù)據(jù)流,包括: 文本文件、源碼文件、數(shù)據(jù)文件、可執(zhí)行文件。文件名。文件索引號。字節(jié)數(shù)。最后訪問時間。文件存取權(quán)限。屬主名。屬組名文件屬性約40項,與使用有關(guān)的主要內(nèi)容:UNIX普通文件命名規(guī)則普通文件命名規(guī)則 命名規(guī)則隨意 擴展名沒有硬性規(guī)定如可以指定: filea.exe

2、 為文檔文件; fileb.text為可執(zhí)行文件UNIX文件解釋交給應用程序文件解釋交給應用程序Unix文件系統(tǒng)不對文件內(nèi)容做標注和解釋文件系統(tǒng)管理任務(wù)比較簡單、清晰對同一文件可以有多種解釋結(jié)果目錄稱為“目錄文件”,其中包括了目錄中的文件名和文件描述信息。每個目錄項包括: . 目錄/文件名 . 索引節(jié)點號InodeFile name其中Inode通常為4字節(jié)指針,是磁盤中一個數(shù)組的索引號。該數(shù)組對應一個文件的屬性信息結(jié)構(gòu),每個文件有唯一的inode及屬性信息結(jié)構(gòu)。UNIX目樹僅有一個根,除了可以創(chuàng)建目錄樹外,還可以通過安裝和卸載命令構(gòu)成或修改目錄樹。目錄樹及目錄文件目錄樹是UNIX文件系統(tǒng)的組

3、成部分;有關(guān)目錄樹的命令很多,原則上目錄樹的深度無限制。/usrdevsbinhomeetctmpbinteam1team2binlibmanlocalzhangwangliliuzhao一個典型的unix目錄樹結(jié)構(gòu)/usr 可共享的操作系統(tǒng)命令,庫,和文檔。/sbin 引導系統(tǒng)和安裝其它文件系統(tǒng)的最少需要的命令/opt 應用程序/etc 系統(tǒng)配置文件,不再包含可執(zhí)行文件/dev 設(shè)備文件/var 動態(tài)信息例如日志,脫機打印緩沖文件/mnt 本地裝載的文件系統(tǒng)/tmp 操作系統(tǒng)臨時文件/stand 內(nèi)核和引導加載器。/home 用戶目錄第六章第六章 UNIX文件系統(tǒng)文件系統(tǒng) /usr目錄的更詳

4、細的內(nèi)容/usr目錄包含操作系統(tǒng)的大部分,包括命令,庫,和文檔。/usr文件系統(tǒng)包含操作系統(tǒng)的文件,例如可執(zhí)行文件和ASCII文檔。/usr目錄下標準的子目錄在如下定義;/usr/bin 操作系統(tǒng)的用戶命令/usr/conf 內(nèi)核配置文件/usr/contrib 發(fā)布的軟件/usr/lbin 其它命令文件/usr/local 用戶自己安裝的軟件/usr/newconfig 默認的操作系統(tǒng)配置數(shù)據(jù)文件/usr/sbin 系統(tǒng)管理命令/usr/share 獨立結(jié)構(gòu)的共享文件/usr/share/man 操作系統(tǒng)幫助手冊/usr/share/doc 技術(shù)相關(guān)的白皮書第六章第六章 UNIX文件系統(tǒng)文件

5、系統(tǒng) /var目錄的詳細內(nèi)容/var目錄中保存各種日志,臨時文件,中間文件,和打印緩沖文件。任何應用程序或者命令在運行時候創(chuàng)建的文件,對操作系統(tǒng)來說不是關(guān)鍵性的數(shù)據(jù),通常都會被放在/var目錄的下面。例如,/var/adm中會包含于系統(tǒng)管理相關(guān)的日志和其它運行時創(chuàng)建的文件。第六章第六章 UNIX文件系統(tǒng)文件系統(tǒng) /var下面包含的文件有: /var/adm 普通的管理文件和日志文件/var/adm/crash 內(nèi)核的dump文件/var/mail 收到的郵件/var/opt/ 應用運行時產(chǎn)生的文件(例如日志,臨時文件)。每一個應用程序有自己的目錄/var/spool 操作系統(tǒng)子系統(tǒng),例如lp(

6、打?。?cron等系統(tǒng)的緩沖文件/var/tmp /usr目錄下的命令產(chǎn)生的臨時文件第六章第六章 UNIX文件系統(tǒng)文件系統(tǒng) 應用程序的目錄每一個應用程序會在/opt,/etc/opt,/var/opt下面有自己的子目錄。而應用程序的可共享的,或者靜態(tài)的部分在它們自己的/opt/application目錄下,這個目錄的結(jié)構(gòu)同操作系統(tǒng)文件系統(tǒng)的結(jié)構(gòu)類似:/opt/application/bin 用戶命令/opt/application/share/man 幫助手冊/opt/application/lib 庫/opt/application/lbin 后臺命令/opt/application/new

7、config 配置文件的主拷貝第六章第六章 UNIX文件系統(tǒng)文件系統(tǒng) 幫助你定位的命令find 在文件系統(tǒng)層次結(jié)構(gòu)中查找文件whereis 定位源程序,二進制代碼,和幫助手冊的位置Which 在你的PATH中定位一個可執(zhí)行文件file 判斷文件的類型第六章第六章 UNIX文件系統(tǒng)文件系統(tǒng) 使用例子查找屬于用戶grep的所有文件# find / -user grep在/tmp目錄下查找7天都沒有存取的文件# find /tmp -type f -atime +7刪除core文件# find / -name core -exec rm ;whereis命令whereis 命令在你收到“沒有發(fā)現(xiàn)”錯

8、誤信息的時候十分有用。它會搜索一個預定義的目錄列表。默認的情況下,whereis會去搜索源程序,二進制文件,和幫助手冊。你可以使用-b選項來限制它只搜索二進制代碼。例子:# whereis -b lsls: /usr/bin/ls /sbin/ls第六章第六章 UNIX文件系統(tǒng)文件系統(tǒng) which 命令which命令在在判斷將要使用命令的哪一個版本時有用。一些命令有多個home。你到底是執(zhí)行的哪一個版本,是由你PATH變量中指定的目錄的順序決定的。file命令file命令對文件作一系列的測試,然后會試圖對文件歸類。這個命令在判斷一個命令是一個shell腳本還是一個二進制的可執(zhí)行文件時有用。例子

9、:# file /sbin/shutdown/sbin/shutdown : s800 shared executeable# file /sbin/rc/sbin/rc: ascii textstrings 命令strings命令可以找出一個二進制文件中的可用信息,它會在屏幕上顯示出文件中的任何可以打印的字符。對目錄操作及文件操作的命令有:對目錄操作及文件操作的命令有: 目錄: mkdir; cd; pwd; mv; rmdir 文件:cp; cat; ln; rm; mv 目錄樹:ls; chmod; du; find. UNIX特殊文件UNIX將I/O設(shè)備也看成特殊文件,用對文件管理的方

10、式管理設(shè)備,其優(yōu)點是:1) 文件與設(shè)備的輸入輸出盡量統(tǒng)一2) 命令解釋過程簡單3) 設(shè)備和文件在操作系統(tǒng)內(nèi)處于同等保護機制下特殊文件又可分為:。塊設(shè)備文件文件類型記為b。字符設(shè)備文件文件類型記為c. 管道文件(FIFO)管道文件主要用于進程間通信;用于進程間通信的方式有“管道”、“有名管道”或“sockets”。 “管道”是一片核心存儲區(qū),允許兩個有關(guān)進程通過它進行通信,尤其是父子進程間的通信。 “有名管道”可當作文件使用,通信的兩個進程在同一機器中,但可能相互無關(guān),文件類型記為 p。 Socket是一個核心存儲中的數(shù)據(jù)結(jié)構(gòu),用于管理存在于網(wǎng)絡(luò)中的進程通信。典型應用是管道線命令方式:ls l

11、| sort n +4. 鏈接文件使用鏈接可以建立文件間的共享,這種關(guān)聯(lián)在UNIX中也作為一種文件管理。符號鏈接文件是一種鏈接指針,它允許指向一個已存在的文件,可以共享該文件但不復制其文件內(nèi)容。符號鏈接形成的link文件類型記為“l(fā)”。6.3 UNIX文件系統(tǒng)文件系統(tǒng)1. 文件組織及命名文件組織及命名常見文件組織結(jié)構(gòu): 堆 順序文件 索引文件(UNIX采用方式) 散列文件UNIX文件命名方式: 簡單,隨意。用 ls -l命令輸出有:-rwxr-xr-x 1 chr seis 4630 Feb 2 08:51 a.out-rw-r- -r - 1 chr seis 732 Feb 2 08:50

12、 abc.c (1) (2) (3) (4) (5) (6) (7)其中(1)項表示文件許可機制:。第一位判斷文件類型 (- , d , b , c, l, p)。后9位構(gòu)成 u, g, o用戶對文件的使用權(quán)限2. 文件許可機制文件許可機制用戶對文件及目錄擁有的權(quán)限: 權(quán)限 文件 目錄 r 讀權(quán) 讀,列出目錄內(nèi)容 w 寫權(quán) 修改,增刪改目錄 x 執(zhí)行 在查尋路徑名中使用可用umask命令設(shè)置默認許可機制意義: 777-“需要訪問機制”= “默認許可機制設(shè)置值”用 chomd 命令修改許可機制。系統(tǒng)默認許可機制:。對一般文件: rw- r- r-。對可執(zhí)行文件及目錄文件:rwx r-x r-x第

13、六章第六章 UNIX文件系統(tǒng)文件系統(tǒng) 文件、目錄的所有者和權(quán)限第六章第六章 UNIX文件系統(tǒng)文件系統(tǒng) 第六章第六章 UNIX文件系統(tǒng)文件系統(tǒng) 第六章第六章 UNIX文件系統(tǒng)文件系統(tǒng) 第六章第六章 UNIX文件系統(tǒng)文件系統(tǒng) 第六章第六章 UNIX文件系統(tǒng)文件系統(tǒng) 第六章第六章 UNIX文件系統(tǒng)文件系統(tǒng) g第六章第六章 UNIX文件系統(tǒng)文件系統(tǒng) 第六章第六章 UNIX文件系統(tǒng)文件系統(tǒng) 3. 文件系統(tǒng)功能及結(jié)構(gòu) 對輔存空間的管理 文件按名訪問構(gòu)建與存儲介質(zhì)無關(guān)的文件邏輯結(jié)構(gòu) 確立文件存儲結(jié)構(gòu)確定不同介質(zhì)的物理存放格式 執(zhí)行對文件的操作讀、寫、打開、關(guān)閉 提供文件保護和共享機制一般文件系統(tǒng)完成的工作

14、一般文件管理系統(tǒng)結(jié)構(gòu)堆文件順序文件索引順序文件索引文件散列文件邏輯輸入/輸出管理層基本輸入/輸出管理層基本文件系統(tǒng)字符設(shè)備驅(qū)動塊設(shè)備驅(qū)動頂層二層三層四層五層4. 系統(tǒng)中的一些特殊目錄 /dev 邏輯設(shè)備目錄 /bin, /usr/bin 用戶命令目錄 /sbin,/usr/sbin 系統(tǒng)命令 /lib, /usr/lib 用戶庫或系統(tǒng)庫 /etc 系統(tǒng)管理命令 /home 用戶注冊目錄 /tmp 臨時文件目錄5. 文件系統(tǒng)安裝與拆卸 安裝文件系統(tǒng)命令 mount mount option filesystem mountpoint說明:option可?。?-h -輸出該命令幫助信息 -V-輸出

15、該命令版本號 -a - 按fstab文件所指位置安裝所有文件系統(tǒng) -F-為設(shè)備生成一個安裝點 -r-安裝只讀文件 -w-安裝文件可讀可寫filesystem :是要安裝的文件系統(tǒng),通常是/dev/devicemountppint: 是安裝點的描述信息,應已存在且不是/系統(tǒng)文件/etc/fstab是自動安裝文件系統(tǒng)時讀取的信息文件,用以下格式列出每個要安裝文件系統(tǒng)情況:/dev/device /dir/to/mount ftype parameters fs_freq fs_passno /dev/device:需安裝設(shè)備,如/dev/hda4 /dir/to/mount: 文件系統(tǒng)安裝點 ft

16、ype: 文件系統(tǒng)類型,如minix、 vfat、ext2、ntfs等 Parameters:在-o選項后使用的參數(shù) fs_freq:決定該文件系統(tǒng)是否使用垃圾箱 fs_passno:確定引導時檢查磁盤的順序 卸載文件系統(tǒng) umountumountoption filesystemoption可?。?-a-對所有在/etc/mtab中描述的文件卸載 -h-輸出幫助信息并退出 -n-卸載時不寫/etc/mtab -r-當卸載失敗時,重裝成只讀文件系統(tǒng) -V-輸出umount版本號1. 物理卷與邏輯卷概念 物理卷每個獨立硬盤稱物理卷,使用時須分配一個特定的邏輯名,放在/dev中。例: /dev/h

17、disk0 /dev/hdisk1 物理分區(qū)在物理卷中劃分成同樣大小的塊是物理分區(qū),可以是512-4KB 邏輯卷和邏輯分區(qū)邏輯卷是多個物理卷中部分物理分區(qū)的集合,邏輯卷由邏輯分區(qū)構(gòu)成,且邏輯分區(qū)與物理分區(qū)相對應。 卷組由物理卷和邏輯卷構(gòu)成,其中物理分區(qū)相同6.4 UNIX文件系統(tǒng)內(nèi)部存儲文件系統(tǒng)內(nèi)部存儲這些結(jié)構(gòu)的相互關(guān)聯(lián)關(guān)系如下:這些數(shù)據(jù)是IBM R600的AIX管理參數(shù) 邏輯卷的管理每個卷組的物理結(jié)構(gòu):卷組描述卷組狀態(tài)數(shù)據(jù)存儲塊邏輯卷控制塊邏輯存儲塊每個邏輯卷的結(jié)構(gòu):磁盤是文件系統(tǒng)的主要載體,也是系統(tǒng)一種設(shè)備,UNIX文件系統(tǒng)實現(xiàn)對該設(shè)備的多層抽象處理。第一層抽象:從磁盤到分區(qū) 磁盤可劃分成

18、分區(qū),使得在大實體內(nèi)創(chuàng)建獨立區(qū)域,每個分區(qū)可看成獨立磁盤。第二層抽象:從分區(qū)到塊序列 扇區(qū)是基本存儲單元,對其編號使系統(tǒng)能計算磁盤中的每個塊,可將磁盤視為一系列塊的組合。第三層抽象:從塊序列到四個部分的劃分 文件系統(tǒng)中包括文件內(nèi)容、文件屬性、目錄,UNIX將每個獨立的磁盤分成4個部分:數(shù)據(jù)區(qū)、i-node table、超級塊、引導塊。2. 文件系統(tǒng)存儲結(jié)構(gòu)文件系統(tǒng)存儲結(jié)構(gòu)UNIX文件系統(tǒng)由四部分構(gòu)成:1243引導塊=0#塊超級塊=1#塊索引節(jié)點表=2-k#塊數(shù)據(jù)區(qū)=k+1-n#塊 引導塊(引導塊(bootblock):存放操作系統(tǒng)引導和啟動代碼,只有一個文件系統(tǒng)中具有引導代碼,其余的引導塊為空

19、。超級塊(超級塊( superblock):存放文件系統(tǒng)及管理資源的描述信息:文件系統(tǒng)狀態(tài)、索引節(jié)點信息、存儲塊信息。系統(tǒng)中有冗余備份。索引節(jié)點表(索引節(jié)點表( I_node table):存放本文件系統(tǒng)中每個文件的描述信息項,是BFD 表結(jié)構(gòu)數(shù)據(jù)區(qū)(數(shù)據(jù)區(qū)(data are):包含的文件數(shù)據(jù)及目錄文件數(shù)據(jù),空閑區(qū)塊。繼續(xù)3. 索引節(jié)點和目錄文件的作用索引節(jié)點和目錄文件的作用1)文件文件i-node中包括中包括:。文件類型。文件許可機制。文件的uid ,gid。文件被訪問時間。鏈接數(shù)。文件長度。文件數(shù)據(jù)塊指針2)目錄文件主要包括文件名和對應文件索引節(jié)點號.傳統(tǒng)UNIX 目錄文件登記項:索引號

20、文件名 2字節(jié) 14字節(jié)修改后的登記項: 4字節(jié) 255字節(jié)索引號本記錄長文件名長文件名4. 多重索引存儲結(jié)構(gòu)用直接尋址指針和間接尋址指針構(gòu)成多重索引結(jié)構(gòu),便于文件訪問。索引結(jié)構(gòu)圖設(shè): 每物理盤塊=512字節(jié) 每地址指針用4個字節(jié)表示可知:一個文件占據(jù)的最大容量為: 10+128+1282 +1283 =2113674塊繼續(xù)返回索引節(jié)點屬性信息7123450681091112.直接尋址數(shù)據(jù)塊一次間接二次間接三次間接6.5 UNIX6.5 UNIX文件系統(tǒng)動態(tài)管理文件系統(tǒng)動態(tài)管理通過邏輯卷識別多種文件系統(tǒng)通過邏輯卷識別多種文件系統(tǒng)unix可支持多種文件系統(tǒng),其實現(xiàn)機制有兩種: 在系統(tǒng)內(nèi)核中支持不

21、同文件系統(tǒng) 用活動的內(nèi)核加載方式實現(xiàn)無論怎樣都需要將文件的邏輯卷與設(shè)備物理卷之間建立關(guān)聯(lián),查閱系統(tǒng)中這些關(guān)聯(lián)關(guān)系時可用df命令。UNIX文件系統(tǒng)按文件卷(volume)進行構(gòu)造,文件卷與目錄結(jié)構(gòu)或物理設(shè)備對應,用 % df -k 可看到:filesystem kbytes used avail capacity mounted on/dev/dsk/cot3dos0 144951 89757 40706 69% /dev/dsk/cot3dos6 625262 554204 7538 99% /usr/dev/dsk/cot0dos2 195257 166310 9422 80% /home注

22、意:一個在df命令中查閱到的文件卷才是一個可用的文件系統(tǒng),這個文件系統(tǒng)一定與一個物理存介質(zhì)相對應。查看文件卷與物理設(shè)備之間的關(guān)系在內(nèi)存建立一個解釋文件系統(tǒng)的抽象軟件VFS用建立物理設(shè)備與文件系統(tǒng)服務(wù)的接口對每個文件系統(tǒng)細節(jié)進行抽象,使不同的文件系統(tǒng)在系統(tǒng)內(nèi)部被管理進程看成相似的文件系統(tǒng)系統(tǒng)啟動時建立,系統(tǒng)關(guān)閉時消失 2.2.用虛擬文件系統(tǒng)實現(xiàn)多種文件系統(tǒng)識別用虛擬文件系統(tǒng)實現(xiàn)多種文件系統(tǒng)識別實現(xiàn)主要功能:記錄可用文件系統(tǒng)類型; 建立設(shè)備與文件系統(tǒng)的關(guān)聯(lián); 實現(xiàn)面向文件級的通用性操作; 將對特定文件系統(tǒng)的操作影射到物理文件系統(tǒng)中。VFSMINIX FSEXT FSEXT2 FSMSDOSFS緩沖

23、存儲區(qū)I/O驅(qū)動VFS inode 緩存VFS目錄緩存虛擬文件系統(tǒng)實際文件系統(tǒng)與實際文件系統(tǒng)的邏輯關(guān)系與實際文件系統(tǒng)的邏輯關(guān)系VFS工作機理:工作機理:1)所有對文件的訪問須經(jīng)過VFS,完成過濾和分派處理;2)VFS與所有可識別的文件系統(tǒng)建立接口,如iso9660 、FAT、ext2等;3)VFS目錄緩存作用:對所有訪問到的目錄做緩存,以減少對目錄檢索次數(shù),加快對目錄的訪問;4)VFS Inode 緩存作用:因UNIX對文件訪問是通過 Inode實現(xiàn)的,對它做緩存也可提升訪問效率。3. 文件數(shù)據(jù)結(jié)構(gòu)在系統(tǒng)內(nèi)部的動態(tài)管理文件數(shù)據(jù)結(jié)構(gòu)在系統(tǒng)內(nèi)部的動態(tài)管理UNIX通過對數(shù)據(jù)結(jié)構(gòu)(如:超級塊、索引節(jié)點

24、、目錄記錄項等)操作實現(xiàn)對文件系統(tǒng)的管理,但在實現(xiàn)中還要建立一些動態(tài)數(shù)據(jù)結(jié)構(gòu)。內(nèi)存超級塊?;顒铀饕?jié)點表。用戶打開文件表。系統(tǒng)打開文件表。安裝表動態(tài)數(shù)據(jù)結(jié)構(gòu)與靜態(tài)描述結(jié)構(gòu)關(guān)聯(lián)圖繼續(xù)返回4. UNIX檢索文件的流程以訪問文件“./a/b”為例,說明文件的內(nèi)部檢索過程.1)檢索當前目錄的索引節(jié)點2)通過當前目錄找到當前目錄文件查出.節(jié)點3)檢索.索引節(jié)點4)通過.文件找到.文件查出a的索引節(jié)點號5)檢索a的索引節(jié)點號6)找到a的目錄文件,查出b的索引節(jié)點號7)檢索b,找到b的文件位置8)訪問文件 b5. unix對文件共享的管理UNIX中有多種文件共享需求:。不同用戶的不同級別共享:通過文件訪問權(quán)

25、限實現(xiàn)。父子進程對文件的共享:通過修改文件訪問計數(shù)實現(xiàn)。文件的鏈接共享使用硬鏈接及符號鏈接的命令:% ln abc.c xyz.c% ln -s xyz.c def.c(查看結(jié)構(gòu))。通過管道線的文件共享 管道文件的大小限定及訪問特性繼續(xù)硬連接及符號鏈接原理圖硬連接及符號鏈接原理圖返回6.6 6.6 使用系統(tǒng)調(diào)用管理文件的方法使用系統(tǒng)調(diào)用管理文件的方法1. 文件管理有關(guān)知識1)文件描述符高級語言中的輸入/輸出庫函數(shù)是對FILE類型的指針操作,c語言處理中自動打開stdin,stdout,stderr三個文件。操作系統(tǒng)中用一個整形數(shù)描述打開的文件,它就是文件描述符 文件描述符與文件名之間有唯一對應

26、關(guān)系。2)再談文件訪問權(quán)限文件訪問權(quán)限構(gòu)成文件訪問權(quán)限構(gòu)成已知當創(chuàng)建一個新文件或目錄時,依據(jù)umask命令參數(shù)完成.umask命令設(shè)置訪問權(quán)限屏蔽位;通常是:缺省權(quán)限&(屏蔽位數(shù))=最終訪問權(quán)限例如: 若可執(zhí)行文件缺省權(quán)為777, 又執(zhí)行了 $ umask 777則新建文件權(quán)限為 777&777=000 umask缺省值通常放在系統(tǒng)文件“.profile”或“.login”中. 文件的特殊訪問位文件的特殊訪問位除了文件訪問權(quán)限外還有文件特殊訪問位,它與文件訪問權(quán)限緊密相關(guān)。文件訪問權(quán)限中的9位三個組數(shù)分別對應:屬主,屬組,其它. 它們在內(nèi)部對應著三個特殊訪問位的描述: set-

27、user-ID(SUID) set-group-ID(SGID) sticky SUID位可解決用戶修改自己密碼問題。因文件按權(quán)限控制,寫權(quán)限就意味著修改權(quán)。但/etc/passwd權(quán)限為 : -rw-r- -r- - 1 root root 894 Jun 20 19:17 /etc/passwd希望做到:普通用戶無寫權(quán)但應能寫, 但這個寫權(quán)只限于寫自己的口令。解決辦法:給passwd命令一個特殊的權(quán)限,使用該命令的文件所有者臨時成為root,通過特殊屬性控制達到對有效用戶ID進行控制.SUID可用chmod命令設(shè)置:chmod 4* file-list 或chmod u+s file-li

28、st如: $ ls -l cp.new-rwx-x- 1 sarwar faculty 12 may 08 20:00 cp.new$ chmode 4710 cp.new$ ls -l cp.new-rws-x- 1 . 用戶執(zhí)行位變?yōu)閟$ chmod u-s cp.new$ chmod u-x cp.new 用戶執(zhí)行權(quán)被取消 $ chmod u+s cp.new 用戶執(zhí)行位顯示S SGID位用于指明組的執(zhí)行權(quán)設(shè)定.Chmod 2* file-list 或chmod g+s file-list如:$ chmod 2751 cp.new $ ls -l cp.new-rwxr-s-x 1 若原

29、組執(zhí)行位未設(shè)置時,則為 大寫“S”,否則為“s”。sticky 位對文件:將該文件存放在交換區(qū),為了支持交換技術(shù)用。對目錄:主要用于控制共享目錄被多個用戶擁有的權(quán)限,例如/tmp目錄管理, sticky 位使目錄中的文件只能被創(chuàng)建者刪除。 chmod 1* file-listchmod +t file-list如:$ chmod 1751 cp.new$ ls -l cp.new-rwxr-x-t 1 .-rwxr-x-T 1 (當“其他用戶”執(zhí)行位未被設(shè)置時)小結(jié):chmod 命令中使用的文件訪問保護位:SUIDSGIDStickyOwnerGroupOther1471011121)crea

30、t系統(tǒng)調(diào)用creat 創(chuàng)建一個空文件或?qū)⒁延形募貫榭瘴募{(diào)用格式:fd=creat(name,pmode)這里pmode指定新建文件許可位;例如: fd=creat(“newfile”,0744);表示指定新建文件許可位為:rwxr- - r - -而若前面已做了umask(022);則核心程序做:( 022)&0744=07442. 文件管理系統(tǒng)調(diào)用文件管理系統(tǒng)調(diào)用2)link 建立文件的連接調(diào)用格式:status=link(name1,name2)status可以為0,-1系統(tǒng)的全局變量errno記錄著出錯代碼3)unlink 刪除連接文件調(diào)用格式為:status=unlink(

31、name)狀態(tài)與上條類似。作用是:從目錄文件中刪除一個登記項4)open/ close系統(tǒng)調(diào)用。Open 打開文件調(diào)用格式:fd=open(name,rw-mode,pmode)正常fd=3,表示打開文件的描述符;rw-mode是讀寫方式:0,1,2或O_RDONLY ,O_WRONLY O_RDWR;Pmode是指用open創(chuàng)建一個新文件時的訪問權(quán)限。close 關(guān)閉文件調(diào)用格式:status=close(fd)用fd指明欲關(guān)閉的文件。5) read/ write系統(tǒng)調(diào)用完成對文件的讀寫操作。調(diào)用格式:n=read(fd,buffer,size);n=write(fd,buffer,size

32、);它們與高級語言中庫函數(shù)很相似:n=fread(buffer,byte,record,fp);n=fwrite(buffer,byte,record,fp); 區(qū)別:1)前者是對文件描述符fd操作,后者對指針fp操作2)前者沒有記錄的概念,后者有3)前者是底層服務(wù),后者是高層服務(wù),提供緩沖機制。系統(tǒng)調(diào)用舉例:寫一段c程序,完成下列命令的功能:% cp file1 file2無論文件是何種類型(字符可見、二進制不可見)。注意:對文件的讀/寫中使用不同的size值,其訪問速度會受到影響,請編寫程序感受這一點。Main( argc,argv)int argc;char *argv ; int fd

33、1,fd2, n; char buf512,ch=nif (argc0) write(fd2,buf,n);close(fd1);close(fd2);編寫一個簡單的cp命令程序:6.7 6.7 文件隨機存取技術(shù)文件隨機存取技術(shù)1.改變文件指針位置lseek 系統(tǒng)調(diào)用,調(diào)用格式:newpos=lseek(fd,offset,origin);fd: 打開文件描述符offset: 從指定位置開始的位移量Origin:是offset參數(shù)的基點。2. 獲取當前文件指針位置系統(tǒng)調(diào)用tell可報告當前文件指針位置調(diào)用格式: pos=tell(fd)pos: 長整數(shù),文件指針位置fd: 文件描述符tell與

34、lseek連用可對文件中的內(nèi)容做隨即訪問,舉例說明如下:#include#includechar buf1=the is test text;char buf2=12345;main( ) int fid;if(fid=creat(Test,0644)0)printf(creat file errorn);exit(1);elseif(write(fid,buf1,16)=-1) printf(buf1 write errorn);exit(1); post=tell(fid); printf(“file postis_1:%d”,post);if(lseek(fid,30,SEEK_SET)= =-1)printf(lseek errorn);exit(2);if(write(fid,buf2,5)!=5) printf(buf2 write errorn); exit(3); post=tell(fid); printf(“file postis_2:%d”,post); close(fid); exit(0);1.記錄鎖定技術(shù)的描述Unix允許多個用戶同時打開一個文件進行讀寫操作,使用部分記錄鎖定方法保證多個用戶間的同步操作.6.8 6.8 文件記錄管理文件記錄管理系統(tǒng)調(diào)用loc

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論