Apache修改了配置文件中的路径后,登录该地址网页出现问题 (其中介绍了selinux的域和安全上下文)

默认的网站数据存放在: /var/www/html   

首页名称: index.html

Apache服务程序的主配置文件: /etc/httpd/conf/httpd.conf

(若是将  119  行的DocumentRoot参数修改为别的参数路径,再把在  123 行的 "/var/www" 修改为别的路径参数,重启服务后出现错误,(访问的是Apache默认页面)

Forbidden

You  don't   have  permission   to access  /index.html  on this server

原因是:该访问页面的行为是被禁止的,从这里我们需要了解一下SElinux,关闭SElinux就行"setenforce 0",但是在工作中最好不要关闭,下面介绍方法

SElinux全称为Security-Enhanced  Linux是一个强制访问控制的安全子系统。SElinux属于MAC强制访问(Nabdatory Access  Control)——既让系统中的各个服务进程都受到约束,仅能访问到所需的文件

SElinux有三种模式: 

                                  模式一:enforcing -  安全策略强制启动模式,将会拦截服务的不合法请求

                                  模式二: permissive - 遇到服务越权访问只会发出警告而不强制拦截

                                  模式三: disabled  -  对于越权的行为不警告,也不拦截

SElinux的配置文件 : /etc/selinux/config

SElinux的允许策略包括域和安全上下文:

SElinux域:对进程资源进行限制     (查看方式  ps  -Z)

SElinux安全上下文:对系统资源进行限制  (查看方式 ls  -Z)

使用" ls   -Z "命令检查下新旧网站数据目录的SElinux安全上下文有何不同

SElinux安全上下文是有冒号间隔的四个字段组成,以原始网站数据目录的安全上下文为例分析:

用户段:root表示root账户身份,user_u表示普通用户身份,system_u表示系统进程身份

角色段: obiect_r是文件目录角色,system_r是一般进程角色

类型段: 进程和文件都有一个类型用于限制存取权限

解决方法就是将网站目录"/home/wwwword"的安全上下文修改chesystem_u:object_r:httpd_sys_content_t:s0就行

semanage命令用于查询与修改SElinux的安全上下文

参数 作用
-l 查询
-a 增加
-m 修改
-d 删除

restorecon命令用于恢复SElinux文件安全上下文

参数 作用
-i 忽略不存在的文件
-e 排除目录
-R 递归处理(针对目录使用)
-v 显示详细的过程
-F 强制恢复

修改网站数据目录的安全上下文:semanage  fcontext  -a  -t  httpd_sys_content_t   /home/wwwroot

修改网站数据的安全上下文: semanage  fcontext -a  -t  httpd_sys_content_t  /home/wwwroot/*   (*代表所有文件或目录)

restorecon    -RV   /home/wwwroot

原文地址:https://www.cnblogs.com/liu1026/p/9724983.html