萬盛學電腦網

 萬盛學電腦網 >> 病毒防治 >> 解決新的SELinux安全級別產生問題

解決新的SELinux安全級別產生問題

在Fedora Core 3 Linux發布版中,你運行PHP或者類似的其它腳本的文件或者目錄操作的時候,可能會出現這樣一個異常:"failed to open stream: Permission denied in ..."。這很容易讓我們聯想到權限問題,那麼我們按照常規會把這個文件或者目錄的權限設置為777,但是很遺憾,在這個版本中這樣做或許並不能解決這個問題。
這是因為新的SELinux內核只允許apache用戶僅僅在/tmp目錄中進行這樣的操作(或許有別的可能和原因),解決這個問題必須關閉SELinux的安全級別的相關特性,允許apache用戶可以操作其它目錄,請看下面的詳細步驟和圖示:
有如下PHP代碼:

if (!file_exists("count")) //如果文件count不存在

{

$file=fopen("count","w+"); //創建count文件並寫入

fwrite ($file,"000001"); //寫入

fclose ($file); //關閉文件

}

運行之後,出現異常:
Warning: fopen(count): failed to open stream: Permission denied in /var/www/html/count.php on line 4

Warning: fwrite(): supplied argument is not a valid stream resource in /var/www/html/count.php on line 5

Warning: fclose(): supplied argument is not a valid stream resource in /var/www/html/count.php on line 6

打開“應用程序”->“系統設置”->“安全級別”:



確定修改之後,記得一定要重新啟動防火牆和Apache服務器。再次運行上面的代碼,程序運行正常。

copyright © 萬盛學電腦網 all rights reserved