有时候也用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再进行安装