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