selinux是用于提高系统安全性的;
selinux会为所有的文件及进程分配一个标签,这个标签我们称之为标识,或者 上下文,只有特定的上下文的进程,才能访问特定的上下文资源。 如果上下文不匹配,即使权限是777,依然不能访问。
setenforce 1:开启selinux
setenforce 0:关闭selinux
systemctl stop firewalld
selinux使用方法:先开启selinux,然后安装APACHE阿帕奇(httpd)服务:yum -y install httpd,启动服务:systemctl start httpd, 启动以后打开浏览器网址栏输入该服务器ip,能正常访问内容即可:
现在http访问的是/var/www/html/index.html 里的文件,所以可以简单定义里面内容,然后就会正常显示啦,如,echo 11111111 > /var/www/html/index.html (也可以在/var/htm/中新建文件,然后输入网址的时候ip/新建文件名):
selinux会为所有的文件及进程分配一个标签,这个标签我们称之为标识,或者 上下文,只有特定的上下文的进程,才能访问特定的上下文资源。 如果上下文不匹配,即使权限是777,依然不能访问。
所以现在来说一下 上下文不匹配的情况是什么样:以上述的apache为例,在/var/www/html/**该目录下的任何文件都是可以通过浏览器正常访问的,这时候,我们在根目录下建一个www:mkdir /www ,然后 cd /var/www/html目录中,建一个/www的软连接:ln -s /www www :
在软连接www目录中新建index.html(默认访问该文件内容,所以该文件必须有) 并在里面写入任意内容:echo wwwwww > /www/index.html,这时候通过浏览器访问该软连接地址:
/var/www/html/www/index.html确实存在,为什么会Forbidden呢,这就是之前说的 上下文不一样,因为www实际是属于根目录下的www,并非/var/www/html/中的原生文件,所以解决这个问题就是,必须把上下文改成一致:
ps auZ |grep 服务名称:查看上下文信息
ls -ldZ 文件名:查看文件的上下文(::中间的便是上下文信息)
chcon -R -t 上下文 目录名称:修改上下文
修改成功以后,再次到浏览器访问该目录,即可正常访问了:
restorecon -R 目录名:撤销定义的上下文信息。
自定义