2014-12-19 19 views
1

在Windows和所有操作系統中,存在文件特權,以防止在設置該規則時寫入文件。什麼真的保護文件Priveleges?

這很難描述,但請聽。用C語言編碼的人顯然會使用某種形式的框架來輕鬆修改文件。使用內置的.Net框架,微軟顯然會在寫入文件之前將預防措施放入他們的類中,檢查文件許可權。由於文件權限是通過軟件而不是硬件來存儲的,真正能夠防止文件被篡改的是什麼?

讓我們跳到大會。假設我創建了一個彙編程序,它直接訪問硬盤數據並更改文件的字節。文件權限怎麼可能阻止我這樣做?我想我想問的是,如果編譯的程序在寫入文件之前沒有檢查文件許可權,那麼文件權限如何真正保持安全?

+0

「訪問控制」是比用戶操作更低層的概念。 –

+0

您只能從設備驅動程序直接訪問硬件,這些設備驅動程序必須具有開始加載的權限。用戶級代碼必須通過OS API調用才能訪問文件系統,操作系統將強制執行權限。 – xxbbcc

+0

好的很酷。在操作系統安裝過程中怎麼樣?顯然,在安裝操作系統時,驅動程序還沒有設置,也沒有設置操作系統的每個部分。如果沒有API和驅動程序,那麼硬盤驅動器上的文件層次結構又如何呢? –

回答

6

假設我創建了一個彙編程序,它可以直接訪問硬盤數據並更改文件的字節。文件權限怎麼可能阻止我這樣做?

如果您在彙編中編寫程序,程序集仍在CPU mode中運行,以防止直接訪問內存和設備。

CPU模式…對由CPU運行的某些進程可以執行的操作的類型和範圍施加限制。這種設計允許操作系統運行比應用軟件更多的權限。

您的代碼仍然需要發出system calls以使操作系統與非您的進程和設備擁有的內存進行交互。

a 系統調用是程序如何從操作系統的內核請求服務。這可能包括硬件相關服務(例如訪問硬盤),創建和執行新進程,以及與整體內核服務(如調度)進行通信。

操作系統靠壟斷切換CPU模式的能力,並通過制定系統調用,使他們安全爲用戶土地法啓動維護安全。