【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 模式。

不一定與目前模式一樣。重新開機時,SELinux 的目前模式會依據設定模式轉換。

3、模式切換

3.1 設定檔切換

  CentOS 7 中 SELinux 設定檔位置【/etc/selinux/config】。

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

# vi /etc/selinux/config

  其中「SELINUX=***」為設定模式,變更模式名稱並儲存後,即可切換設定模式。

03:SELinux_Config

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

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

04:SELinux_Config_Status

3.2 臨時切換

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

# setenforce [ Enforcing | Permissive | 1 | 0 ]

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

重新開機時不會被保留。

05:SELinux_SetEnforce

嘗試將自己的理解寫成文字紀錄,資料來源均來自於網路。

如有理解錯誤、引用錯誤或侵權,請多加指正與告知,讓我有更多的進步與改進的空間,謝謝!