nginx 自定义web目录 permission denied (403错误 ) centos7 SELinux

原创 2016年02月25日 11:56:17

nginx 自定义web目录 permission denied (403错误 ) centos7 SELinux

如标题:

  1. 系统环境为centos7;
  2. web服务软件为:nginx;
  3. SELinux安全服务为开启状态,并且setenforce 值为enforcing,即强安全防护;

问题:nginx默认web目录为/usr/share/nginx/html,但是由于某些原因,我希望能自定义web目录到/www。就这样,让我遇见了大麻烦!!!(耗费N个工作日),但我访问我的网站时总是提示403错误!
先说当你希望自定义nginx目录时需要做些什么;免得朋友们着急:
如果你的系统为centos7,并且开启了SELinux(比文件类型更强的安全防护),那么在你自定义nginx 的web目录时,你需要执行以下两个命令:

 chcon -R -u system_u /xxx/
 chcon -R -t usr_t /xxx/

(/xxx/为 你自定义的web目录)。
是的,就这么简单,只要你的文件权限通过,再设置这个,你就可以成功的自定义web目录了。
当然,如果你只是开发环境,你大可以直接关闭selinux,或者执行 setenforce Permissive 命令,使selinux保持宽容状态。

好了,如果以上内容帮助你解决了问题,下面的内容你就可看可不看,我来更详细的描述下遇到这个问题,我都做了些什么。

由于我也是linux新手,对于linux的一些概念不熟悉,所以遇见问题很盲目的,最开始遇到这个问题,我只能想到是文件权限问题,所以我不断地调整文件所属用户及分组,调整nginx的user 用户,除非我把nginx的user设为root,不然访问网站时,始终报403错误。但是如果服务器真正运行,不可能将user设为root啊。所以我又尝试着将我的网站目录文件访问权限设为777,即没有权限限制,但是仍然报403错误!!!所以这时侯我真的很迷茫!!! 所以我百度,谷歌,但是都没有找到解决方法,类似的问题,大家都是关闭了SELinux(当时并不知道SELinux概念)的,遇到的问题只是文件权限问题。
我查看过nginx的错误文件,也看过/var/log/audit/audit.log文件,当时作为小白的我根本不会去分析。
我通过以下两个命令,实现了web访问,

grep nginx /var/log/audit/audit.log | audit2allow -M mypol
semodule -i mypol.pp

但是在重启之后就失效了;
在stackoverflow看问题时,遇见有人通过setenforce Permissive 解决了问题,确实,通过执行这个命令,网站可以政策那个访问了,于是我就去学习了这个命令的作用,发现它是将SELinux的安全级别降低了,所以我还是不甘心,因为这个问题降低服务器安全防护级别岂不坑!所以我又将安全级别设回了Enforcing,于是我只得继续找寻解决方法;
慢慢地,我开始了解SELinux,知道了它的安全防御机制,还发现它有个文件增强类型控制,看到这里我就联想到了我的问题,既然我的普通文件权限没有问题,那么就一定是SELinux的增强类型的问题了,所以在谷歌我的问题时,就加上了SELinux 文件类型的关键字,果然我就搜到了一篇文章,然后接着,我就解决了问题。
文章链接:selinux相关的permission-denied问题

具体的内容,这篇文章里面有,我就不多说了,很感谢这次解决问题的经历,又让我学习了很多!

centos7 nginx 403 forbidden 原因及解决办法

selinux 开启导致 nginx 403If you still see permission denied after verifying the permissions of the pare...
  • default7
  • default7
  • 2017年04月23日 18:20
  • 1465

centOS7,vsftpd,更改默认目录后nginx访问失败,403forbidden解决

博主环境centOS7,安装vsftpd后,浏览器访问,更改nginx默认目录后访问失败 修改了nginx配置: [root@localhost ~]# vim /usr/local/nginx/...
  • zyhlearnjava
  • zyhlearnjava
  • 2017年05月14日 18:42
  • 958

32位centos下安装jdk1.7报Permission denied处理方式

环境: centos5.8 32位 jdk-7u71-linux-i586.tar.gz   目的: 安装jdk   操作: 解压jdk-7u71-linux-i58...
  • longjie_happy
  • longjie_happy
  • 2015年12月13日 23:07
  • 733

Centos7 nginx修改文件夹后 is forbidden (13: Permission denied)

Centos7 nginx修改文件夹后 is forbidden (13: Permission denied) , SELinux
  • z714303584
  • z714303584
  • 2017年01月16日 16:02
  • 709

centos 7 上配置SELinux允许nginx指定/home/www作为网站根目录

现象: 1 启动nginx成功,使用wget 127.0.0.1得到内容,但是提示是禁止访问(403); 2 查看/var/log/nginx/error.log,提示访问/home/www/l....
  • qidizi
  • qidizi
  • 2014年11月19日 23:19
  • 11916

centos 7上nginx 报错,open() "test.min.css" failed (13: Permission denied

OS: Centos7 Kernal: 3.10.0-327.el7.x86_64 在配置好django及相应的nginx反向代理后 发现web打开没有找到静态文件,nginx日志报permiss...
  • select603
  • select603
  • 2016年12月12日 15:23
  • 634

permission denied 解决办法

最近搭建ceph文件系统,从别的机器上挂载ceph客户端后无法创建文件,提示 -bash permission denied, 坑爹啊,开始不懂还以为是ceph的问题,结果在这篇博客看到解决方法: ...
  • computerms
  • computerms
  • 2012年07月28日 16:39
  • 6841

apache CentOS Permission denied: AH00072

关闭SELINUX setenforce 0 修改配置文件 vim /etc/selinux/config SELINUX=enforcing 改成--> SELINUX=disabled...
  • Aries223
  • Aries223
  • 2017年04月27日 09:04
  • 534

Nginx的Permission denied错误

Nginx的Permission denied错误环境: CentOS7问题描述今天搭建了nginx+uwsgi+django的环境,之后通过浏览器访问遇到下面问题: 2017/03/31 19:...
  • kriszhang
  • kriszhang
  • 2017年04月01日 10:29
  • 2135

NGINX: SELinux 13:permission denied

When you upgrade a running system to Red Hat Enterprise Linux (RHEL) 6.6 or CentOS 6.6, the Security...
  • aqzwss
  • aqzwss
  • 2016年04月12日 16:24
  • 1601
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:nginx 自定义web目录 permission denied (403错误 ) centos7 SELinux
举报原因:
原因补充:

(最多只允许输入30个字)