Почему nginx выдает 403, хотя у пользователя, под которым работает nginx, с правами доступа всё нормально
Я хочу сделать веб-доступ к моему HDD диску, который был примонтирован в директорию /home/hdd/storage, веб-досутп будет выдан к дочерней директории public. Вот права и владельцы этой директории и родительских:
/home: root:root 755/home/hdd: hdd:hdd 755/home/hdd/storage: hdd:hdd 755/home/hdd/storage/public: hdd:hdd 775
Пользователь www-data, от имени которого работает nginx находится в группе hdd.
Вот моя конфигурация nginx для виртуального сервера:
server {
listen 443 ssl;
server_name xxx.net;
error_page 404 /error/404;
error_page 403 /error/403;
ssl_certificate /etc/ssl/xxx.net/certificate.crt;
ssl_certificate_key /etc/ssl/xxx.net/private.key;
allow all;
root /home/www-data/xxx.net;
location /hdd {
alias /home/hdd/storage/public;
autoindex on;
}
}
В директорию /home/hdd/storage/public я для проверки закинул файл dlna.apk с правами 664 и с владельцем hdd:hdd:
merqury@merqury-server:~$ sudo -u www-data ls -l /home/hdd/storage/public/dlna.apk
-rw-rw-r-- 1 hdd hdd 5153618 Aug 20 13:01 /home/hdd/storage/public/dlna.apk
При запросе на https://xxx.net/hdd я получаю содержимое директории в котором отображается dlna.apk, но при попытке его загрузить меня перенаправляет на страницу 403.
Другие решения пробовал, ничего не помогало: SELinux у меня нет, apparmor отключен, ACL у меня не установлен, вот глобальная конфигурация:
user www-data;
worker_processes auto;
pid /run/nginx.pid;
error_log /var/log/nginx/error.log;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
}
http {
sendfile on;
tcp_nopush on;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/access.log;
gzip on;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
В error.log нет логов связанных с 403