【Linux】SELinux 模式與切換

  在 Linux 進行軟體安裝時,幾乎都會關閉 SELinux。

  抱持著總不能連自己做了什麼都不知道的心態,稍微了解了 SELinux 的功用以及模式切換。至於相關設定,就先留給專業人士處理吧!

SELinux(Security-Enhanced Linux)是為了避免使用者資源的誤用,在進行程序、檔案等細部權限設定依據的一個核心模組!遵從最小權限理念,預設情況下所有程序都是被拒絕的。

  本文以 CentOS 7 為例,不同版本的 Linux 語法與設定檔位置會略有不同。

1、模式

  使用指令可查詢目前模式。

# getenforce

  SELinux 共有三種模式:

  • Enforcing:依據設定來限制檔案資源存取。
  • Permissive:不限制檔案資源存取,但仍會依據設定檢查並紀錄相關訊息。
  • Disabled:SELinux 已被停用。

01:SELinux_GetEnforce

2、狀態

  使用指令可檢視 SELinux 詳細狀態。

# sestatus

02:SELinux_SeStatus

2.1 Status

  分 enabled、disabled 兩種狀態,在 enabled 時才有下面的資料。

2.2 Current Mode(目前模式)

  只有 Enforcing 與 Permissive 兩種模式。

SELinux 運行模式以此模式為準,與使用指令(getenforce)查詢結果一致。
2.3 Config Mode(設定模式)

  設定檔的 SELinux 模式。

不一定與目前模式一樣。

3、模式切換

3.1 設定檔切換

  使用指令檢視設定模式的設定檔內容。

# vi /etc/selinux/config

03:SELinux_Config

  「SELINUX=***」為設定模式,調整模式名稱即可切換設定模式。

04:SELinux_Config_Status

  檢視狀態會發現設定模式已經切換,但目前模式仍未切換。

  此時需要重新開機才會套用新的 SELinux 設定。

3.2 臨時切換

  有時候只是做個測試,不想要重新開機,使用指令可臨時切換 SELinux 目前模式。

# setenforce [ Enforcing | Permissive | 1 | 0 ]

  將目前模式在 Enforcing 與 Permissive 兩種模式中進行切換且不用重新開機,達到快速測試目的。

重新開機時不會被保留。

05:SELinux_SetEnforce

嘗試將自己的理解寫成文字紀錄,如有理解錯誤,請多加指正,讓我有更多的進步空間,謝謝!