Esto es lo que tengo en 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
Esto es lo que veo /var/log/nginx/error.logdespué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
Esto es lo que tengo en 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
Que pasa

ls -lZmuestra? Intentasetenforce 0ver si funciona.setenforce 0ayudó. Por favor, envíelo como respuesta, lo aceptaréRespuestas:
Cuando obtiene
permission deniederrores en el acceso a archivos, etc. por razones desconocidas, puede estar relacionado con SELinux. Especialmente cuando ve un período después de los permisos como sedrwxr-xr-x.muestrals -lpara el archivo / directorio en cuestión, podrían estar mal etiquetados (puede verlols -Z) y causar el problema.Primero debe verificar el modo SELinux actual ejecutando
getenforce. Si diceEnforcing, configure temporalmente el modoPermissiveejecutandosetenforce 0y vea si su aplicación funciona después.Por favor, consulte la guía de su distribución en SELinux para solución permanente, incluyendo el ajuste del modo de SELinux en el arranque, volver a etiquetar los archivos o directorios, la actualización de las políticas, etc. Aquí está Howto para CentOS .
fuente
Alterar todo SElinux no siempre es la respuesta correcta. No soy un experto, pero lo compararía con la desactivación del firewall si no se puede acceder a un puerto.
Otra solución rápida podría ser "restaurar el contexto SE" de los archivos, especialmente si se copian de alguna parte.
Ver https://www.thegeekstuff.com/2017/05/restorecon-examples/ para más detalles.
Estos son comandos que vale la pena probar antes de deshabilitar SElinux
fuente
Full path required for exclude: net:[...].Una mejor manera que deshabilitar selinux es usar el comando
Eso permitirá que el servicio toe nginx pase sin deshabilitar completamente selinux
Más información en https://www.nginx.com/blog/using-nginx-plus-with-selinux/
Sin embargo, para mí ejecutar el
command chcon -v --type=httpd_sys_content_t /etc/nginx/*y funcionó correctamente sin necesidad de superar httpd_tfuente