有些博客上面說的是 setenforce 0 表示臨時關閉,但是我發現我這邊 0 表示 Permissive , 並不是 disable。本文來記錄下正確的操作。已經有很多博客對 SElinux 有很深的說明了,在下面的文章中就只是對 SELinux 操作的詳細說明,對於 SELinux 簡介就概述下。
SELinux 簡介
SELinux(Security-Enhanced Linux) 是美國國家安全局(NSA)對於強制訪問控制的實現,是 Linux歷史上最傑出的新安全子系統。NSA是在Linux社區的幫助下開發了一種訪問控制體系,在這種訪問控制體系的限制下,進程只能訪問那些在他的任務中所需要文件。SELinux 默認安裝在 Fedora 和 Red Hat Enterprise Linux 上,也可以作爲其他發行版上容易安裝的包得到。
SELinux 模式
- enforcing:強制模式;代表SELinux運作中,違反 SELinux 規則的行爲將被阻止並記錄到日誌中。用 “1” 表示。
- permissive:寬容模式(也有人說是警告模式);代表SELinux運作中,當違反SELiunx的行爲規則時,會發出警告並記錄到日誌中,但是不會被阻止,一般都是調試用。用“0”表示。
- disabled:關閉模式。
SELinux 命令
切換狀態使用 setenforce 命令,下圖中可以看到 Enforcing 值爲 1, Permissive 值爲 0
## 查看對應的值
setenforce
## 設置爲 強制模式
setenforce 1
查看當前的 SELinux 狀態
getenforce
SELinux 配置文件
當我們需要永久關閉 SELinux 的時候,需要修改配置文件,將 SELINUX 設置爲 disable,然後重啓 linux 系統,配置如下圖:
vi /etc/selinux/config
特別說明
如果由 enforcing 或 permissive 改成 disabled ,或由 disabled 改成其他兩個,也必須要重新啓動。這是因爲 SELinux 是整合到核心裏面去的, 你只可以在 SELinux 運作下切換成爲強制 (enforcing) 或寬容 (permissive) 模式,不能夠直接關閉 SELinux 的!
同時,由 SELinux 關閉 (disable) 的狀態到開啓的狀態(enforcing )也需要重新開機!所以,如果剛剛你發現 getenforce 出現 disabled 時, 請到上述文件修改成爲 enforcing 吧!