標籤:

文件系統 | 文件的共享和保護

文件共享

是指某一個或某一部分文件可以讓事先規定的某些用戶共同使用。

文件索引節點法

假設B用戶想使用「/B/B1/B12」文件名訪問共享文件C21。

但是這種的鏈接方式會造成當一個目錄刪除文件C21的時候,導致另一個目錄也不能檢索到給文件,因為C21在之前的目錄索引刪除過程中已經被刪除了,15號索引節點已經為空。如下圖:

所以,為了解決這個問題,我們引入了一個鏈接計數器 count 。表示有 count 個用戶正在訪問該共享文件。當一個用戶想要刪除該文件時不能直接將C21文件刪除。

在Linux中共享索引節點法又稱為硬鏈接

ln 共享文件名 新文件名ln /C/C2/C21 /B/B1/B12

符號鏈接法:

為共享文件創建一個link類型的新文件:如/B/B1/B12

(1)分配並填寫一個空閑i節點;

(2)建立目錄項;

(3)分配磁碟空間;

(4)寫入文件內容:共享文件的路徑名:/C/C2/C21

Linux:

ln –s 共享文件名 新文件名ln –s /C/C2/C21 /B/B1/B12

硬鏈接與符號鏈接的區別:

$ ls –il // i 表示顯示索引節點, l 表示顯示長格式顯示13058 -rwxrwx - - - 1 zwh zwh 48 9月 5 16:38 file113059 -rwx rwx- - - 1 zwh zwh 57 9月 5 16:40 file2

文件屬性:

文件類型:

(1)- :普通文件;

(2)d :目錄文件;

(3)l :符號鏈接文件;

(4)c :字元設備文件;

(5)b :塊設備文件;

(6)s :socket文件;

(7)p :管道文件;

$ ls –il 13058 -rwxrwx - - - 1 zwh zwh 48 9月 5 16:38 file1 13059 -rwx rwx- - - 1 zwh zwh 57 9月 5 16:40 file2 $ ln file2 file2hard // 文件索引節點法 $ ls –il 13058 -rwxrwx - - - 1 zwh zwh 48 9月 5 16:38 file1 13059 -rwxrwx - - - 2 zwh zwh 57 9月 5 16:40 file2 13059 -rwxrwx - - - 2 zwh zwh 57 9月 5 16:40 file2hard

應為是使用的硬節點方式,所以他們指向的共同的一個索引節點,於是他們的索引節點編號是一樣的。

$ ln –s file1 file1soft // 符號鏈接法$ ls –il13058 -rwxrwx - - - 1 zwh zwh 48 9月 5 16:38 file113059 -rwxrwx - - - 2 zwh zwh 57 9月 5 16:40 file213059 -rwxrwx - - - 2 zwh zwh 57 9月 5 16:40 file2hard13061 lrwxrwxrwx 1 zwh zwh 5 9月 5 16:58 file1soft->file1// 符號鏈接文件, 鏈接計數仍為1 ,文件也明顯比原來的文件小。

用符號鏈接法創建的只是一個能夠找到目標文件的一個路徑,所以明顯比目標文件大小要小。

$ rm file2hard // 刪除剛才創建的硬鏈接文件$ ls –il13058 -rwxrwx - - - 1 zwh zwh 48 9月 5 16:38 file113059 -rwxrwx - - - 1 zwh zwh 57 9月 5 16:40 file2 // 鏈接數又變為113061 lrwxrwxrwx 1 zwh zwh 5 9月 5 16:58 file1soft->file1

硬鏈接和符號鏈接總結:

(1)索引節點:

  • 硬鏈接與原文件公用一個inode號,這說明他們是同一個文件;
  • 符號鏈接與原文件擁有不同的inode號,表明他們是兩個不同的文件;

(2)在文件屬性上:

  • 符號鏈接明確寫出了是鏈接文件,而硬鏈接沒有寫出來,因為在本質上硬鏈接文件和原文件是完全平等關係

(3)鏈接計數不一樣:

  • 符號鏈接的鏈接計數不會增加;

(4)文件大小不一樣:

  • 硬鏈接文件顯示的大小跟原文件一樣,因為是同一個文件;
  • 符號鏈接顯示的大小與原文件不同,file1大小是48B,而file1soft是5B,這裡面的5實際上就是「file1」的大小。

(5)硬鏈接不能跨越文件卷建立鏈接,不能給目錄創建硬鏈接;而符號鏈接可以。

(6)符號鏈接要建立新的符號鏈接文件,共享開銷大。

文件保護

造成文件被破壞的原因:

  • 系統軟硬體錯誤:系統可靠性;
  • 被未授權用戶訪問:系統安全性。

提高系統可靠性

(1)備份技術:

① 周期性轉儲

固定的時間周期把存儲器中所有文件的內容轉存到某種介質上,通常是磁帶或磁碟。在系統失效時,使用這些轉存磁碟或磁帶,將所有文件重新建立並恢復到最後一次轉存時的狀態。

② 增量性轉儲

這種技術轉儲的只是從上次轉儲以後已經改變過的信息;增量轉儲的信息量較小,故轉儲可在更短的時間周期內進行。

(2)磁碟容錯技術

① 第一級容錯技術SFT-Ⅰ :主要用於防止因磁碟部分缺陷所造成的數據丟失。

  • 雙份目錄和雙份文件分配表
  • 熱修復重定向和寫後讀校驗:
    • 熱修復重定向(Hot-Redirection)
    • 寫後讀校驗(Read after write Verification)方式

② 第二級容錯技術SFT-Ⅱ :主要用於防止因磁碟驅動器和磁碟控制器故障所造成的文件破壞。

  • 磁碟鏡像(Disk Mirroring):

  • 磁碟雙工(Disk Duplexing): 為了防止磁碟控制器的故障

提高系統安全性

是指文件本身不得被未經文件主授權的任何用戶存取,而對於授權用戶也只能在允許的存取許可權內使用文件。

手段:許可權驗證

  • 訪問控制矩陣
  • 存取控制表
  • 用戶許可權表
  • 口令
  • 加密

(1)訪問矩陣: 描述系統存取控制許可權的矩陣

行:代表用戶(組);

列:代表對象:軟硬體資源;

值:許可權

(2)訪問控制表:為文件設置存取控制屬性

訪問矩陣按列(對象)進行劃分,每一列建立一張訪問控制表。

比如對於剛才建立的F1這一列,可以建立訪問控制表如下:

對於F2列可以建立:

(3)訪問許可權表 :為用戶設置許可權

訪問矩陣按行進行劃分,每一行建立一張訪問許可權表。

對於D1用戶,可以列出其可操作性的對象,建立其訪問許可權表如下:

對於D2用戶:

推薦閱讀:

谷歌自研Fuchsia OS將兼容安卓:亦可在x86體系運行
360雲盤關閉你的照片和文件怎麼辦?
CPU調度
蘋果電腦操作系統是什麼?
系統突發性地磁碟佔有100%,資源管理器無限重啟

TAG:操作系統 |