Я хотел бы указать каталог на моем сервере, используя мой веб-браузер. Каталог/srv/downloads/Nginx: stat() failed (13: Permission denied) при просмотре
Для этого я установил сервер nginx. Вот файлы конфигурации:
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $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;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
и .conf файл внутри каталога conf.d является:
server {
listen 80 default_server;
server_name example.org;
root /srv;
client_max_body_size 64M;
location /downloads/ {
autoindex on;
alias /srv/downloads/;
allow 192.168.0.0/24;
allow 10.212.116.0/23;
deny all;
}
}
Но когда я пытаюсь получить доступ к http://192.168.0.2/downloads/
, я могу перечислить каталоги, но не все , Ниже то, что происходит:
2015/04/21 17:08:54 [crit] 12839#0: *1 stat() "/srv/downloads/fix_kernel_doc.patch.done" failed (13: Permission denied), client: 192.168.0.26, server: example.org, request: "GET /downloads/ HTTP/1.1", host: "192.168.0.2"
Как показано на nginx.conf, сервер Nginx побежал пользователем «Nginx». Поэтому я сделал следующее:
[[email protected]]# su -l nginx -s /bin/stat /srv/downloads/fix_kernel_doc.patch.done
Last login: mar. avril 21 17:30:19 CEST 2015 on pts/0
File: '/srv/downloads/fix_kernel_doc.patch.done'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd00h/64768d Inode: 85524762 Links: 1
Access: (0644/-rw-r--r--) Uid: (1000/ is) Gid: (1000/ devs)
Context: system_u:object_r:var_t:s0
Access: 2015-04-21 17:22:48.393259661 +0200
Modify: 2015-04-21 17:22:48.393259661 +0200
Change: 2015-04-21 17:22:48.393259661 +0200
Birth: -
Мой пользователь nginx находится в группе «devs». Я также пробовал с пользовательскими www-данными, чтобы быть уверенным, но он не работает ни.
Любая идея, пожалуйста? Спасибо
Действительно, отключение SELinux помогает мне получить весь контент каталога и его подкаталогов. Проблема с пользователем nginx заключается в получении атрибутов файлов. type = AVC msg = audit (1429687617.608: 30874): avc: denied {getattr} для pid = 12839 comm = "nginx" path = "/ srv/downloads/gdk-pixbuf-2.30.8.tar.xz" dev = " dm-0 "ino = 75184977 scontext = system_u: system_r: httpd_t: s0 tcontext = unconfined_u: object_r: admin_home_t: s0 tclass = file – Lazao
Я отредактировал свой ответ, чтобы включить команды, которые должны делать то, что вы хотите, надеюсь, они работают! – Kyle
Спасибо, это работает! – Lazao