system_u 分配給文件時是什麼意思?
我的問題是:
- 如果有一個將 system_u 分配為 SELinux 的文件,這意味著只有映射到 system_u/unconfined_u 的使用者才能訪問該文件?
- 如果這個標籤被分配給一個執行檔,這意味著執行這個 exec 的任何人都會啟動一個帶有 system_u/system_r 標籤的程序?
- 或分配給文件的 system_u 或 system_r 沒有任何意義,它只是一個佔位符?
我很感激你的回答。謝謝..
如果有一個將 system_u 分配為 SELinux 的文件,這意味著只有映射到 system_u/unconfined_u 的使用者才能訪問該文件?
這取決於安全模型,但通常安全上下文中的使用者屬性僅用於將安全上下文的其餘部分粘合到 Linux 使用者/組身份。這種安全模型稱為基於身份的訪問控制。屬性的主要目的是解決以下挑戰:我們如何增強/擴展/現代化現有的 Linux 訪問控制模型?IBAC 將兩者聯繫起來。
但或者,使用者屬性也可以另外用於基於 SELinux 使用者身份(IBAC 分離)分離實體。雖然這個安全模型通常是不啟用的(但是 selinux 參考策略有這個選項)。
如果這個標籤被分配給一個執行檔,這意味著執行這個 exec 的任何人都會啟動一個帶有 system_u/system_r 標籤的程序?
不,但(我認為)它可以。預設行為可在安全策略中使用所謂的“預設規則”進行定制。預設情況下,當您執行文件時,您的新程序會從“呼叫程序”繼承與安全上下文中的使用者屬性關聯的標識符。
見:https ://github.com/SELinuxProject/selinux-notebook/blob/main/src/default_rules.md#default_user
或分配給文件的 system_u 或 system_r 沒有任何意義,它只是一個佔位符?
您幾乎永遠不會看到與文件關聯的 system_r。相反,您可能會看到與文件關聯的 object_r。object_r 確實是在與對象關聯的安全上下文中填充 selinux 角色安全屬性欄位的佔位符。這是因為預設情況下,角色用於實現稱為“基於角色的訪問控制”的安全模型,並且該模型僅適用於使用者程序而不適用於文件。您可以選擇並另外使用此屬性來強制實施自定義安全模型,例如 RBAC 分離,您可以根據角色標識符分離對文件的訪問。
安全上下文中的每個欄位至少有一個含義。與這些欄位相關的屬性和標識符對應於安全模型,而安全模型是“解決特定安全挑戰的設計”。唯一的例外是 object_r 角色標識符,但即使這樣也有意義,因為它告訴我沒有基於角色的文件訪問分離。
- RBAC https://github.com/SELinuxProject/selinux-notebook/blob/main/src/rbac.md#role-based-access-control
- IBAC https://github.com/SELinuxProject/selinux-notebook/blob/main/src/users.md#selinux-users
- TE https://github.com/SELinuxProject/selinux-notebook/blob/main/src/type_enforcement.md#type-enforcement
- MLS https://github.com/SELinuxProject/selinux-notebook/blob/main/src/mls_mcs.md#multi-level-and-multi-category-security
- 安全上下文https://github.com/SELinuxProject/selinux-notebook/blob/main/src/security_context.md#security-context