解决Nginx failed (13: Permission denied) 报错

安素 2019年08月01日 363次浏览

配置Nginx日志分割的时候,发现无法生效,查看nginx日志,报错

	failed (13: Permission denied)

权限不足 然后查看目录权限如下

	drwxr-xr-x 5 root root 4096 Jul 28 01:17 conf
	drwxr-xr-x 5 root root 4096 Jul 28 01:28 html
	drwxr-xr-x 5 root root 4096 Jul 31 11:57 logs
	drwxr-xr-x 3 root root 4096 Jul 31 23:31 nginx-pid

文件的所有者和文件的属组为root有所有权限,其他用户没有写权限,我尝试创建了一个日志文件,并赋予777权限,发现日志可以写进去,看来是权限的问题了 查看Nginx进程信息

	[root@ansu nginx]# ps -ef |grep nginx
	work     16983 17753  0 20:30 pts/0    
	work     18686 20547  0 Jul31 ?        
	work     18697 20547  0 Jul31 ?       
	work     18702 20552  0 Jul31 ?       

果然是权限问题,nginx是用work用户运行的,而work用户,不属于root组,也没有写入权限,所以,新建不了文件,报权限不足错误。 现在解决这个问题,有几种方式

  1. nginx使用root用户运行,但是,会使nginx权限过高,不太安全 编辑nginx.conf文件,将 更改下面位置
    	user  root;
    	worker_processes  1;
    
  2. 将user用户加入root组,但是,权限也是太高
    	usermod -g  root user
    
  3. 将nginx目录下所有文件所属用户和所属组更改为user组user用户
    	chown -R user:user nginx
    

Nginx权限不足的问题,就基本上都可以按照这种思路解决