Não consigo ver os arquivos ao navegar no servidor nginx. Permissões incorretas?

Não consigo ver os arquivos ao navegar no servidor nginx. Permissões incorretas?

Estou usando o centos 7 com nginx 1.12 para hospedar um repositório yum localmente. Quando tento navegar pelos arquivos pelo navegador, consigo ver as pastas, mas nenhum arquivo dentro delas. Estou me perguntando se talvez não tenha definido as permissões ou propriedade corretas.

Esta é a minha configuração: Sincronizei todos os pacotes para extras, atualizações, etc. no caminho

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

As permissões são assim:

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

Estou tentando acessar a pasta de pacotes pelo navegador e não vejo nenhum arquivo. As permissões são:

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

Permissões de um arquivo dentro da pasta:

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 é o meu arquivo 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 é a configuração do site:

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

  location / {
    autoindex on;
  }
}

Responder1

Além das permissões regulares do sistema de arquivos, RHEL e CentOS têm controles de acesso obrigatórios do SELinux habilitados por padrão. Provavelmente seus arquivos não estão rotulados corretamente.

Como você está usando o local padrão do sistema de arquivos para conteúdo da web, você pode restaurar os contextos de segurança padrão do SELinux comrestorecon

 restorecon -R /var/www/html/repos

Moiré informações detalhadas sobre como solucionar problemas do SELinux: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/selinux_users_and_administrators_guide/chap-security-enhanced_linux-troubleshooting

informação relacionada