SELinux是Linux核心的安全子系統,通過嚴格的存取控制機制增強系統安全性。一般情況下,建議開啟SELinux來限制進程的許可權,防止惡意程式通過提權等方式對系統進行攻擊;然而,由於SELinux的嚴格存取控制機制,可能會導致一些應用程式或服務無法啟動,因此在特定情況下(如開發、調試等),需暫時關閉SELinux。
關於SELinux的工作原理和詳細說明,請參見什麼是SELinux?。
操作須知
本教程以下述鏡像版本為例,介紹如何開啟和關閉SELinux。
Alibaba Cloud Linux 3.2104 LTS 64位
CentOS 7.6 64位
如果您使用的是其他Linux發行版,如Fedora、RHEL 9、Debian或Ubuntu等,請參照各自的官方文檔或社區指南進行操作。不同的Linux發行版可能會有不同的配置方法和工具。您可以訪問相應作業系統的官方網站或查閱社區論壇擷取針對特定版本的詳細指導。
開啟SELinux
遠端連線Linux執行個體。
具體操作,請參見通過密碼或密鑰認證登入Linux執行個體。
運行以下命令,查看SELinux狀態。
sestatus
若系統返回的參數資訊
SELinux status
顯示為disabled
,則表示SELinux已關閉。在ECS執行個體上運行以下命令,編輯SELinux的
config
檔案。sudo vi /etc/selinux/config
找到
SELINUX=disabled
欄位,按i
進入編輯模式,通過修改該參數取值來開啟SELinux。您可以根據實際需求自行調整參數取值來選擇啟用SELinux的其中一種模式 :
模式
參數取值
說明
強制執行模式
SELINUX=
enforcing
表示所有違反安全性原則的行為都將被禁止。
寬容模式
SELINUX=
permissive
表示所有違反安全性原則的行為不被禁止,但會在日誌中做記錄。
修改完成後,按
Esc
鍵退出編輯模式,輸入:wq
後按下斷行符號鍵,儲存並退出檔案。重要完成修改
config
檔案後,需要重啟ECS執行個體使配置生效,但直接重啟執行個體將會出現系統無法啟動的錯誤。因此,在重啟之前需要在根目錄下建立autorelabel
檔案,以避免出現該問題。執行以下命令,在根目錄下建立隱藏檔案
autorelabel
。sudo touch /.autorelabel
重啟ECS執行個體。具體操作,請參見重啟執行個體。
說明在ECS執行個體重啟過程中,SELinux將自動執行系統檔案的重新標記操作。請注意,重新標記系統檔案是一個全面的掃描過程,具體時間長度取決於系統檔案的數量和大小。建議您在重啟執行個體後,預留適當的時間,以便該過程能夠完整地進行,確保檔案安全設定的正確性。
關閉SELinux
關閉SELinux可能會降低系統的安全性,使系統更容易受到潛在的安全性漏洞和攻擊。在關閉之前,您應該仔細評估潛在的風險,並確保系統中其他安全措施的有效性。因此,在解決問題後,建議儘快重新啟用SELinux,以恢複系統的安全性保護。
遠端連線Linux執行個體。
具體操作,請參見通過密碼或密鑰認證登入Linux執行個體。
運行以下命令,查看SELinux狀態。
sestatus
若系統返回的參數資訊
SELinux status
顯示為enabled
,則表示SELinux已啟動。選擇臨時關閉或者永久關閉SELinux。
說明臨時關閉SELinux僅影響當前會話,系統重啟後將重設為原始狀態;要實現永久關閉,必須更改設定檔,確保SELinux在重啟之後維持禁用。
臨時關閉SELinux
執行以下命令,臨時將SELinux的模式從
強制執行模式(enforcing)
切換到寬容模式(permissive)
。sudo setenforce 0
永久關閉SELinux
運行以下命令,編輯SELinux的
config
檔案。sudo vi /etc/selinux/config
找到
SELINUX=enforcing
或SELINUX=permissive
欄位,按i
進入編輯模式,將參數修改為SELINUX=disabled
。修改完成後,按
Esc
鍵退出編輯模式,輸入:wq
後按下斷行符號鍵,儲存並退出檔案。重啟ECS執行個體。
具體操作,請參見重啟執行個體。
完成重啟後,運行以下命令,驗證SELinux狀態。
sestatus
若系統返回的參數資訊
SELinux status
顯示為disabled
,則表明SELinux已永久關閉。
相關文檔
您可以在寬容模式下,審查日誌以發現安全性原則違規事件,並調整SELinux策略規則,確保後續切換至強制執行模式時無誤阻攔行為。具體操作,請參見查看執行個體的系統日誌和螢幕截圖。