Nginx diz que open () “/etc/nginx/conf.d/foo.conf” falhou (13: Permissão negada)

11

Aqui está o que eu tenho em ls -al /etc/nginx :

total 52
drwxr-xr-x.  4 root root 4096 Jul 28 04:16 .
drwxr-xr-x. 78 root root 8192 Jul 28 03:37 ..
drwxr-xr-x.  2 root root   26 Jul 28 03:55 conf.d
drwxr-xr-x.  2 root root    6 May 10 09:21 default.d
-rw-r--r--.  1 root root 1034 May 10 09:21 fastcgi.conf
-rw-r--r--.  1 root root  964 May 10 09:21 fastcgi_params
-rw-r--r--.  1 root root 2837 May 10 09:21 koi-utf
-rw-r--r--.  1 root root 2223 May 10 09:21 koi-win
-rw-r--r--.  1 root root 3957 May 10 09:21 mime.types
-rw-r--r--.  1 root root 1033 Jul 28 03:43 nginx.conf
-rw-r--r--.  1 root root  596 May 10 09:21 scgi_params
-rw-r--r--.  1 root root  623 May 10 09:21 uwsgi_params
-rw-r--r--.  1 root root 3610 May 10 09:21 win-utf

Isso é o que eu vejo /var/log/nginx/error.log após sudo service nginx start :

[emerg] 20360#0: open() "/etc/nginx/conf.d/foo.conf" failed
(13: Permission denied) in /etc/nginx/nginx.conf:33

Isso é o que eu tenho em ls -al /etc/nginx/conf.d/ :

$ ls -al /etc/nginx/conf.d/
total 8
drwxr-xr-x. 2 root root   26 Jul 28 03:55 .
drwxr-xr-x. 4 root root 4096 Jul 28 04:16 ..
-rw-r--r--. 1 root root  230 Jul 28 03:50 foo.conf

O que há de errado?

    
por yegor256 28.07.2015 / 06:19

2 respostas

17

Quando você está recebendo permission denied erros no acesso a arquivos, etc. por motivo desconhecido, pode estar relacionado ao SELinux. Especialmente quando você vê um período após as permissões como drwxr-xr-x. mostrado por ls -l para o arquivo / diretório em questão, elas podem ser rotuladas incorretamente (você pode vê-lo por ls -Z ) e causar o problema.

Você deve primeiro verificar o modo SELinux atual executando getenforce . Se ele diz Enforcing , defina temporariamente o modo para Permissive executando setenforce 0 e veja se seu aplicativo funciona depois.

Por favor, consulte o guia da sua distribuição no SELinux para correção permanente, incluindo a configuração do modo SELinux no início, a re-marcação de arquivos ou diretórios, atualização de políticas, etc. Aqui está Como para o CentOS .

    
por 28.07.2015 / 10:29
0

Alterar todo o SElinux nem sempre é a resposta certa. Eu não sou um especialista, mas eu o compararia com a desativação do firewall se uma porta não estivesse acessível.

Outra solução rápida poderia ser "restaurar o contexto SE" dos arquivos, especialmente se eles forem copiados de algum lugar.

Consulte o link para obter mais detalhes.

Estes são os comandos que vale a pena tentar antes de desativar o SElinux

sudo restorecon  /etc/nginx/conf.d/
sudo restorecon  /etc/nginx/conf.d/*
    
por 01.08.2018 / 10:15

Tags