你終有一天會被 SELinux 阻止你訪問所需的東西,而且要解決這個問題。SELinux 拒絕某個文件、進程或資源被訪問的基要原因有數個:
1 一個被錯誤標簽的文件
2 一個進程在錯誤的 SELinux 安全性脈絡下運行
3 政策出錯。某個進程要訪問一個在編寫政策時意料不到的文件,並產生錯誤信息
4 一個入侵的企圖。
頭三個情況我們可以處理,而第四個正正是預期的表現。
先安裝setroubleshoot 組件。有的資料說他是默認安裝的,但在我的CentOS5.5上沒有。
yum install setroubleshoot
日志檔是排除任何疑難的關鍵,而 SELinux 亦不例外。SELinux 缺省會通過 Linux 審計系統(auditd)將日志寫在 /var/log/audit/audit.log 內,而這項務服缺省為啟用的。假若 auditd 並未運行,信息將會被寫進 /var/log/messages。SELinux 的日志都被標簽有 AVC 這個關鍵字,方便它們從其它信息中過濾出來。
由 CentOS 5 起,你可以用 SELinux 排除疑難工具協助你分析日志檔,將它們轉換為供人閱讀的格式。這個工具包含一個以可讀格式顯示信息及解決方案的圖像界面、一個桌面通報圖示、與及一個長駐進程(setroubleshootd),它負責查閱新的 SELinux AVC 警告並傳送至通報圖示(不運行 X 服務器的話可設置以電郵通報)。SELinux 排除疑難工具是由 setroubleshoot 組件所提供,並缺省會被安裝。這個工具可以從「系統」選單或命令行引導:
sealert -b
不運行 X 服務器的人可以通過命令行產生供人閱讀的報告:
sealert -a /var/log/audit/audit.log > /path/to/mylogfile.txt