Linux中SELinux三種模式的啟動、關(guān)閉與查看方式
SELinux三種模式的啟動、關(guān)閉與查看
目前SELinux依據(jù)啟動與否,共有三種模式,分別如下:
Enforcing
:強制模式,代表SELinux運行中,且已經(jīng)正確開始限制domain/typePermissive
:寬容模式,代表SELinux運行中,不過僅會有警告信息并不會實際限制domain/type的讀寫(這種模式可以用來作為SELinux的debuug之用)Disabled
:關(guān)閉模式,SELinux并沒有實際運行
我們要知道,并不是所有的進程都會被SELinux管制,所以我們需要知道進程有沒有受限(confined)
舉例來說:
我們查看一下crond和bash這兩個進程是否被限制
我們可以看到crond確實是受限的主體進程,而bash因為是本機進程,就是不受限(unconfined_t)的類型。也就是說bash是直接去判斷rwx
三種模式的運行狀態(tài):
Disabled
的模式,那么SELinux將不會運行,受限的進程也不會經(jīng)過SELinux,直接去判斷rwxPermissive
的模式,不會阻止主體進程,但是當(dāng)沒有通過策略規(guī)則或安全上下文判斷時,此讀寫操作將會被記錄起來(log),可作為未來檢查問題的判斷依據(jù)Enforcing
的模式,就是將受限主體進入規(guī)則比對、安全上下文比對的流程,若失敗,就直接阻止主體進程的讀寫操作,并且將它記錄下來。如果通通沒問題就進入到rwx的判斷
查看SELinux模式
使用getenforce查看
查看SELinux的策略
sestatus 【-vb】
選項與參數(shù):
- -v:檢查列于/etc/sestatus.conf內(nèi)的文件與進程的安全上下文內(nèi)容
- -b:將目前策略的規(guī)則布爾值列出
SELinux的啟動與關(guān)閉
SELinux的配置文件為/etc/selinux/config
其中非注釋的內(nèi)容只有兩行為:
除了強制模式與寬容模式之間相互轉(zhuǎn)換之外,其他的模式變換都需要直接在配置文件中修改,并且變換模式后,都需要重新啟動
讓SELinux在Enforcing與Permissive之間切換
setenforce 【0/1】
選項與參數(shù):
- 0:轉(zhuǎn)為Permissive寬容模式
- 1:轉(zhuǎn)為Enforcing強制模式
不過請注意,setforce無法再Disabled模式下切換模式
補充:
問題:
- 在某些特殊情況下
- 我們從Disabled切換到Enforcing之后
- 有一大堆服務(wù)不能順利啟動
- 并且錯誤為/lib/xxx里面的數(shù)據(jù)沒有權(quán)限讀取
- 這是因為重新寫入SELinux類型出錯
- 使用Permissive就沒有這個錯誤
處理:
- 在Permissive的狀態(tài)下
- 使用【restorecon -Rv/】重新還原所有SELinux的類型就能解決這個問題
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Linux服務(wù)器離線安裝 nginx的詳細(xì)步驟
這篇文章主要介紹了Linux服務(wù)器離線安裝 nginx的詳細(xì)步驟,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-06-06Linux中創(chuàng)建新用戶并賦予指定目錄的相關(guān)權(quán)限
這篇文章主要介紹了Linux中創(chuàng)建新用戶并賦予指定目錄的相關(guān)權(quán)限,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-11-11shell 命令行中操作HBase數(shù)據(jù)庫實例詳解
這篇文章主要介紹了 shell 命令行中操作HBase數(shù)據(jù)庫實例詳解的相關(guān)資料,需要的朋友可以參考下2016-11-11apache tomcat 一個網(wǎng)站多域名的實現(xiàn)方法
因此處是進行多域名設(shè)置,所以 Apache 與 tomcat的結(jié)合沒有詳述,此處只是設(shè)置多域名的方法2009-02-02