SELinux初始化登入使用者安全上下文的方法
在開啟了SELinux的系統中,登入使用者也有特定的安全上下文,可以用id -Z檢視:
接下來說一下如何在策略檔案中定義登入使用者的預設安全上下文
1.在seusers中定義每個登入使用者SELinux使用者,如果不想為每一個使用者都定義SELinux使用者,可以使用__default__指定未定義SELinux使用者時使用的預設SELinux使用者名稱:
2.SELinux子系統啟動後,會根據登入使用者名稱,在/etc/selinux/specified-policy/seusers檔案中查詢對應的SELinux使用者名稱,如上圖,root對應的SELinux使用者名稱是system_u
3.獲取登入使用者的SELinux使用者名稱後,進入/etc/selinux/specified-policy/contexts/users目錄,查詢以SELinux使用者名稱為命名的檔案,如果存在這個檔案,則使用檔案中定義的安全上下文作為登入使用者的安全上下文:
4.如果/etc/selinux/specified-policy/contexts/users下沒有對應的SELinux使用者名稱檔案,則查詢/etc/selinux/specified-policy/contexts/default_contexts檔案,使用檔案中定義的安全上下文作為登入使用者的安全上下文
5.如果/etc/selinux/specified-policy/contexts/default_contexts檔案中沒有定義任何安全上下文,則查詢/etc/selinux/specified-policy/contexts/failsafe_context檔案,使用檔案中定義的安全上下文作為登入使用者的安全上下文
6.如果/etc/selinux/specified-policy/contexts/failsafe_contex檔案中沒有定義任何安全上下文,則使用策略規則中定義的sid kernel的安全上下文,作為登入使用者的安全上下文