天天看點

4.1 在SELinux中客體類存在的目的

版權聲明:您好,轉載請留下本人部落格的位址,謝謝 https://blog.csdn.net/hongbochen1223/article/details/47748861

客體類和他們相關的權限是SELinux中通路控制的基礎.客體類代表着是資源的類别例如檔案和套接字,并且權限代表着對這些資源的通路,例如讀和發送.了解客體類和權限是SELinux中一個比較困難的方面,因為他繼續要Linux的知識,也需要SELinux的知識.

一個客體類代表着一個确定類型的所有的資源(例如檔案或者是套接字).一個客體類的執行個體(例如,一個特定的檔案或者是套接字)簡單的稱作一個對象.通常術語客體類和對象可以互換使用,但是了解他們之間的不同是非常重要的.客體類指的是整個資源的類别(file),對象指的是客體類中一個特定的執行個體(/etc/passwd).

正如我們在第二章讨論的那樣,”Concepts,”在政策中通過對具有指定類型的客體類的權限來描述對對象的通路.為了闡述明白,我們來考慮下面的規則.

allow user_t bin_t:file{read execute getattr};

在這條規則中,類型為user_t的程序(也就是資源或主體)被允許對所有具有目标類型bin_t的客體類實體進行讀取,執行和擷取其屬性操作.客體類檔案指定資源的類别,bin_t指定哪一個資源類别的實體來應用那一條規則(也就是說,這些類型為bin_t的檔案實體).他不應用那些有bin_t類型但不是檔案類也不應用到是檔案實體但沒有bin_t類型來作為他們的類型.

在這條規則中的權限,讀,執行和擷取屬性定義了允許那些擁有user_t類型的主體去通路這些客體.這些對檔案客體類都是有效的權限中的每一個都代表着對對象通路的一些方式.(例如,read 權限需要使用open(2)系統調用來打開檔案進行讀取等).這些為客體類定義的權限的集合(也被稱為通路向量)代表着多有可能的通路,這些對那些客體類所代表的資源通路能夠被允許.

客體類的集合依賴于SELinux的版本和Linux集合.随着時間的推移,新的和不同的客體類已經發展了新的和改變了的核心特征.例如,新版版的Linux核心已經為控制audit架構引進了一個新的Netlink-specific 套接字.對于這些支援Netlink-specific的核心,會有一個帶有适當權限的SELinux客體類被定義.

繼續閱讀