Beim Durchsuchen des Nginx-Webservers werden keine Dateien angezeigt. Falsche Berechtigungen?

Beim Durchsuchen des Nginx-Webservers werden keine Dateien angezeigt. Falsche Berechtigungen?

Ich verwende CentOS 7 mit Nginx 1.12, um ein Yum-Repository lokal zu hosten. Wenn ich versuche, die Dateien über den Browser zu durchsuchen, kann ich die Ordner sehen, aber keine Dateien darin. Ich frage mich, ob ich möglicherweise nicht die richtigen Berechtigungen oder Eigentümer festgelegt habe.

Das ist mein Setup: Ich habe alle Pakete für Extras, Updates usw. in den Pfad synchronisiert

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

Die Berechtigungen sehen folgendermaßen aus:

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

Ich versuche, über den Browser auf den Paketordner zuzugreifen, sehe aber keine Dateien. Die Berechtigungen sind:

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

Berechtigungen aus einer Datei im Ordner:

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

Dies ist meine nginx.conf-Datei

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;

}

Dies ist die Konfiguration für die Site:

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

  location / {
    autoindex on;
  }
}

Antwort1

Zusätzlich zu den regulären Dateisystemberechtigungen sind bei RHEL und CentOS standardmäßig obligatorische SELinux-Zugriffskontrollen aktiviert. Höchstwahrscheinlich sind Ihre Dateien nicht richtig gekennzeichnet.

Da Sie den Standardspeicherort des Dateisystems für Webinhalte verwenden, können Sie die Standard-SELinux-Sicherheitskontexte wiederherstellen mitrestorecon

 restorecon -R /var/www/html/repos

Moire: Detaillierte Informationen zur Behebung von SELinux-Problemen: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/selinux_users_and_administrators_guide/chap-security-enhanced_linux-troubleshooting

verwandte Informationen