在 Linux 進行軟體安裝時,幾乎都會關閉 SELinux。
抱持著總不能連自己做了什麼都不知道的心態,稍微了解了 SELinux 的功用以及模式。
至於相關設定,就先留待日後或屆時交由專業人士處理吧!
SELinux(Security-Enhanced Linux)是為了避免使用者資源的誤用,在進行程序、檔案等細部權限設定依據的一個核心模組!遵從最小權限理念,預設情況下所有程序都是被拒絕的。
本篇以 CentOS 7 為例,不同版本的 Linux 語法與設定檔位置會略有不同。
1、模式
使用指令可以查詢目前模式。
# getenforce
SELinux 共有三種模式如下:
- Enforcing:強制模式,依據設定來限制檔案資源存取。
- Permissive:寬容模式,不限制檔案資源存取,但仍會依據設定檢查並記錄相關訊息。
- Disabled:停用模式,SELinux 已被停用。
2、狀態
使用指令可以檢視 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=***」為設定模式,變更模式名稱並儲存後,即可切換設定模式。
檢視狀態會發現設定模式已經切換,但目前模式仍未切換。
此時需要重新開機才會套用新的 SELinux 設定。
3.2 臨時切換
有時候只是為了做個測試,不想要重新開機,使用指令可以臨時切換 SELinux 目前模式。
# setenforce [ Enforcing | Permissive | 1 | 0 ]
將目前模式在 Enforcing 與 Permissive 兩種模式中進行切換,而且不用重新開機,可以達到快速測試的目的。
重新開機時不會被保留。
- CentOS 官方網站:SELinux
- 鳥哥的 Linux 私房菜:16.5 SELinux 初探
嘗試將自己的理解寫成文字紀錄,資料來源均來自於網路。
如有理解錯誤、引用錯誤或侵權,請多加指正與告知,讓我有更多的進步與改進的空間,謝謝!