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