總有一天,SELinux會阻止你訪問你需要的東西,你得解決這個問題。SELinux拒絕訪問文件、進程或資源有幾個基本原因:
1個文件被錯誤標記。
兩個進程正在錯誤的SELinux安全上下文下運行。
3政策錯誤。一個進程在編寫策略時需要訪問一個意外的文件,將會生成一條錯誤消息。
四次試圖入侵。
我們可以處理前三種情況,第四種是預期表現(xiàn)。
首先安裝setroubleshoot組件。有消息稱默認安裝,但在我的centos5.5上沒有。
yum安裝setroubleshoot
日志是故障排除的關鍵,SELinux也不例外。SELinux通過Linux審計系統(tǒng)(auditd)默認將日志寫入/var/log/audit/audit.log,默認開啟該服務。如果auditd沒有運行,信息將被寫入/var/log/messages。SELinux日志標有關鍵字AVC,這樣就可以從其他信息中過濾出來。
從CentOS 5開始,您可以使用SELinux故障排除工具來幫助您分析日志文件,并將它們轉(zhuǎn)換為人類可讀的格式。這個工具包括一個以可讀格式顯示信息和解決方案的圖像界面,一個桌面通知圖標,還有一個setroubleshootd,負責檢查新的SELinux AVC警告并發(fā)送給通知圖標(如果不運行X server,可以設置為郵件通知)。SELinux故障排除工具由setrobush組件提供,默認情況下安裝。該工具可以從系統(tǒng)菜單或命令行啟動:
西勒特-b
不運行X服務器的人可以生成報告,供人們通過命令行閱讀:
sealert-a/var/log/audit/audit . log/path/to/my log file . txt