文件保護:文件訪問類型和訪問控制
為了防止文件共享可能會導致文件被破壞或未經核准的用戶修改文件,文件系統必須控制用戶對文件的存取,即解決對文件的讀、寫、執行的許可問題。
為此,必須在文件系統中建立相應的文件保護機制。
文件保護通過口令保護、加密保護和訪問控制等方式實現。
其中,口令保護和加密保護是為了防止用戶文件被他人存取或竊取,而訪問控制則用於控制用戶對文件的訪問方式。
訪問類型
對文件的保護可以從限制對文件的訪問類型中出發。可加以控制的訪問類型主要有以下幾種:
讀:從文件中讀。
寫:向文件中寫。
執行:將文件裝入內存並執行。
添加:將新信息添加到文件結尾部分。
刪除:刪除文件,釋放空間。
列表清單:列出文件名和文件屬性。
此外還可以對文件的重命名、復制、編輯等加以控制。
這些高層的功能可以通過系統程序調用低層系統調用來實現。保護可以只在低層提供。
例如,復制文件可利用一系列的讀請求來完成。這樣,具有讀訪問用戶同時也具有復制和打印的權限了。
訪問控制
解決訪問控制最常用的方法是根據用戶身份進行控制。
而實現基於身份訪問的最為普通的方法是為每個文件和目錄增加一個訪問控制列表(Access-Control List, ACL),以規定每個用戶名及其所允許的訪問類型。
這種方法的優點是可以使用復雜的訪同方法。其缺點是長度無法預期並且可能導致復雜的空間管理,使用精簡的訪問列表可以解決這個問題。
精簡的訪問列表釆用擁有者、組和其他三種用戶類型。
-
擁有者:創建文件的用戶。
-
組:一組需要共享文件且具有類似訪問的用戶。
-
其他:系統內的所有其他用戶。
這樣只需用三個域列出訪問表中這三類用戶的訪問權限即可。
文件擁有者在創建文件時,說明創建者用戶名及所在的組名,系統在創建文件時也將文件主的名字、所屬組名列在該文件的FCB中。
用戶訪問該文件時,按照擁有者所擁有的權限訪問文件,如果用戶和擁有者在同一個用戶組則按照同組權限訪問,否則只能按其他用戶權限訪問。UNIX操作系統即釆用此種方法。
口令和密碼是另外兩種訪問控制方法。
口令指用戶在建立一個文件時提供一個口令,系統為其建立FCB時附上相應口令,同時告訴允許共享該文件的其他用戶。
用戶請求訪問時必須提供相應口令。這種方法時間和空間的開銷不多,缺點是口令直接存在系統內部,不夠安全。
密碼指用戶對文件進行加密,文件被訪問時需要使用密鑰。
這種方法保密性強,節省了存儲空間,不過編碼和譯碼要花費一定時間。
口令和密碼都是防止用戶文件被他人存取或竊取,並沒有控制用戶對文件的訪問類型。
注意
注意兩個問題:
現代操作系統常用的文件保護方法,是將訪問控制列表與用戶、組和其他成員訪問控制方案一起組合使用。
對於多級目錄結構而言,不僅需要保護單個文件,而且還需要保護子目錄內的文件, 即需要提供目錄保護機制。
目錄操作與文件操作並不相同,因此需要不同的保護機制。