SELinux三種模式


一、SELinux三種模式簡介

    Enforcing:強制模式。代表SELinux在運行中,且已經開始限制domain/type之間的驗證關系
    Permissive:寬容模式。代表SELinux在運行中,不過不會限制domain/type之間的驗證關系,即使驗證不正確,進程仍可以對文件進行操作。不過如果驗證不正確會發出警告
    Disabled:關閉模式。SELinux並沒有實際運行

二、getenforce命令

    功能:查看當前SELinux的運行模式

 

 
三、sestatus命令

    功能:查看當前系統上面SELinux的策略,運行模式等信息
    命令格式:

sestatus  [-vb]

    相關參數與選項:
        -v:檢查列於/etc/sestatus.conf內的文件御錦城的安全上下文
        -b:將目前策略的規則布爾值列出,亦即某些規則是否要啟動(0/1)之意

    演示案例

        可以看到當前的策略為targeted。模式為enforcing

 

 



四、SELinux的配置文件(/etc/selinux/config)

    SELINUX=enforcing:當前SELinux的模式
    SELINUXTYPE=targeted:當前SELinux的策略
    如果想要修改策略和模式,就更改這個文件里面的內容即可

 

 



五、SELinux模式的更改(setenforce命令)

    SELinux模式的更改規則:
        ①不論是從Enforcing或Permissive改為Disabled,還是由Disabled改為Enforcing或Permissive,系統都需要重新啟動。因為SELinux是整合到內核中的
        ②在SELinux已經運行的模式下:只能夠在Enforcing和Permissive兩種模式之間進行切換,而不能直接關閉SELinux(Disabled),如果你使用getenforce發現當前SELinux模式為Disabled時,請立即到/etc/selinux/config文件中將SELinux改為Enforcing,然后重新啟動系統
        ③如果你從Disable轉到啟動SELinux的模式時,系統必須針對文件寫入安全上下文的信息,因此啟動過程會花費不少時間等待重新寫入SELinux安全上下文(有時成為SELinux Label),而且在寫完之后還要再重新啟動一次
        ④如果你在Enforcing模式,但是可能由於一些設置的問題導致SELinux讓某些服務無法正常地運行,此時可以將Enforcing的模式改為寬容(Permissive)的模式,讓SELinux只會警告而,而不會直接阻止主體進程的讀取權限
    setenforce命令格式:

    # 轉換為Permissive寬容模式
    setenforce  0
     
    # 轉換為Enforcing強制模式
    setenforce  1

    注意事項:setenforce無法設置SELinux為Disabled模式

    演示案例

 

 



六、restorecon -Rv 命令

    介紹:
        當你從Disabled切換為Enforcing模式時,會有一堆服務無法順利啟動,會跟你說/lib/xxx里面的數據沒有權限讀取,所以啟動失敗。原因:大多是重新寫入SELinux類型時出錯的緣故
        解決辦法:切換為Permissive寬容模式,然后使用restorecon  -Rv  /  重新還原所有SELinux的類型,就能解決這個問題


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM