有時候也用PHP做WEB開發,但很多時候不是純的web開發,所以有時候會有1種需求:通過http遠程修改服務器當中的任意文件。
后面通過sip服務器的freepbx和fusionpbx弄清楚了1件事,就是只需要把相干目錄設為同1個用戶組就能夠到達我的目的。事實也的確是這樣的,比如apache以apahce:apache的權限運行,那末只有你把相干文件,也就是你想通過http修改的任意文件的所有權限修改成apache:apache,那末問題就解決了。這樣你就能夠在其目錄內任意創建文件,任意修改文件,能不能任意履行文件就沒測試過。
但后來我安裝了1臺centos系統,上面安裝了apache+php+mysql,然后修改了相干文件的用戶組,也設置了apache運行時組適用戶所有者,但除對web目錄下的文件可以做任何操作外,對其它目錄下的文件都權限修改,愁悶了整整1天。查遍了所有apache的配置文件,都感覺沒問題,但問題出在哪里呢?
最后無意間發現linux下有selinux這樣1個東西,它是為了保證基于http的服務器安全而誕生的。所以,只要制止selinux,問題就能夠解決了。禁掉selinux for centos的方法以下:
1、查看selinux狀態
查看selinux的詳細狀態,如果為enable則表示為開啟
# /usr/sbin/sestatus -v
查看selinux的模式
# getenforce
2、關閉selinux
2.1:永久性關閉(這樣需要重啟服務器后生效)
# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
2.2:臨時性關閉(立即生效,但是重啟服務器后失效)
# setenforce 0 #設置selinux為permissive模式(即關閉)
# setenforce 1 #設置selinux為enforcing模式(即開啟)
這樣就關閉SELinux了,當安裝軟件遇到問題時可以斟酌關閉SELinux再進行安裝