У меня есть виртуальная машина libvirt, на которой запущен nginx с общей файловой системой, смонтированной в виртуальной машине nginx, и я хочу открыть каталог в этом монтировании. nginx, похоже, работает нормально, и я могу получить доступ к основным локальным файлам и подкаталогам в / usr / share / nginx / html. У меня есть символическая ссылка от монтирования к местоположению nginx по умолчанию через
ln -sf /mnt/h_drive/ss4/ /usr/share/nginx/html/
..и я вижу ss4
dir из браузера, но когда я нажимаю на него, я получаю сообщение «403 Forbidden» и вижу следующее в моем /var/log/nginx/error.log
2017/10/18 17:52:16 [error] 30806#0: *1 opendir() "/usr/share/nginx/html/ss4" failed (13: Permission denied), client: xxx.xxx.xxx.xxx, server: _, request: "GET /opt/ss4/ HTTP/1.1", host: "example.com"
если я отключу selinux с помощью setenforce 0
Я могу получить доступ ко всему.
Что мне нужно сделать, чтобы получить доступ к этому креплению?
$ yum install setroubleshoot-server -y
$ aureport -a # дает отчет об отказах
$ ausearch -m avc -ts недавние # последние 10 мин.
$ sudo audit2allow -a
nginx system_u: system_r: httpd_t: s0 5 файл getattr unlimited_u: object_r: puppet_etc_t: s0 denied 616
$ audit2allow -a -M читать
$ semodule -i read.pp
В конце концов я наткнулся на следующее решение:
semanage allow httpd_t nfs_t:dir read;
Спасибо @bell за советы по устранению неполадок, я обязательно буду ссылаться на них для будущих проблем!