No puedo ver archivos al navegar por el servidor web nginx. ¿Permisos incorrectos?

No puedo ver archivos al navegar por el servidor web nginx. ¿Permisos incorrectos?

Estoy usando centos 7 con nginx 1.12 para alojar un repositorio yum localmente. Cuando intento explorar los archivos a través del navegador, puedo ver las carpetas, pero no puedo ver ningún archivo dentro de ellas. Me pregunto si es posible que no haya configurado los permisos o la propiedad correctos.

Esta es mi configuración: He sincronizado todos los paquetes de extras, actualizaciones, etc. en la ruta

/var/www/html/repos/centos/7/os/x86_64

Los permisos se ven así:

ls -l /var/www
drwxrwx--x. 3 root nginx 19 Aug 30 09:12 html

ls -l /var/www/html
drwxr-xr-x. 4 root nginx 32 Aug 30 09:12 repos

ls -l /var/www/html/repos
drwxr-xr-x. 3 root nginx 15 Aug 30 09:12 centos

ls -l /var/www/html/repos/centos
drwxr-xr-x. 3 root nginx 45 Aug 30 09:12 7

ls -l /var/www/html/repos/centos/7
drwxr-xr-x. 3 root nginx 20 Aug 30 09:12 os
drwxr-xr-x. 3 root nginx 20 Aug 30 09:12 updates
drwxr-xr-x. 3 root nginx 20 Aug 30 09:12 extras

ls -l /var/www/html/repos/centos/7/os
drwxr-xr-x. 8 alexl alexl 237 Aug 30 09:12 x86_64

Estoy intentando acceder a la carpeta de paquetes a través del navegador y no veo ningún archivo. Los permisos son:

ls -l /var/www/html/repos/centos/7/os/x86_64 | grep Packages
drwxr-x-r-x. 2 alexl alexl 565248 Aug 1 18:02 Packages

Permisos de un archivo dentro de la carpeta:

ls -l /var/www/html/repos/centos/7/os/x86_64/Packages | tail -1
-rw-r--r--. 1 alexl alexl 35380 Jul 4 2014 zziplib-utils-0.13.62-5.el7.x86_64.rpm

Este es mi archivo nginx.conf

user              nginx;  
worker_processes  auto;
error_log         /var/log/nginx/error.log;
pid               /run/nginx.pid;

events {
  worker_connections  1024;
}

http {
    log_format   main '$remote_addr - $remote_user [$time_local]  $status '
    '"$request" $body_bytes_sent "$http_referer" '
    '"$http_user_agent" "$http_x_forwarded_for"';

    access_log          /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    include /etc/nginx/conf.d/*.conf;

}

Esta es la configuración del sitio:

server { # simple load balancing
  listen          80;
  server_name     mysecretdomain.com;
  root            /var/www/html/repos;

  location / {
    autoindex on;
  }
}

Respuesta1

Además de los permisos habituales del sistema de archivos, RHEL y CentOS tienen controles de acceso obligatorios de SELinux habilitados de forma predeterminada. Lo más probable es que tus archivos no estén etiquetados correctamente.

Dado que está utilizando la ubicación predeterminada del sistema de archivos para el contenido web, puede restaurar los contextos de seguridad predeterminados de SELinux conrestorecon

 restorecon -R /var/www/html/repos

Información detallada de Moire sobre la solución de problemas de SELinux: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/selinux_users_and_administrators_guide/chap-security-enhanced_linux-troubleshooting

información relacionada