Вопрос: Fedora 16: «Permission denied: права доступа к файлам запрещают доступ к серверу»


Я работаю с новой установкой Fedora 16, и я пытаюсь запустить Apache. Я очень хорошо знаком с Linux и несколько с CentOS, но у меня очень мало опыта с Fedora и SELinux (что бы это ни было).

Сначала, после установки Apache, я даже не мог увидеть веб-страницу примера. Я сделал некоторые поиски и, наконец, исправил эту проблему, отредактировав iptables.

sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT
sudo iptables-save

Я пошел вперед и начал отбрасывать некоторые файлы в корневом веб-браузере, убедившись, что разрешения установлены правильно.

$ ls -Rlhp /var/www/html/
/var/www/html/:
total 8.0K
drwxr-xr-x. 2 apache root 4.0K Apr 20 22:47 files/

/var/www/html/files:
total 25M
-rw-r--r--. 1 apache users 25M Apr 20 22:47 SRR022918.errors.tar.gz

Но затем, когда я перешел к соответствующему URL (my.server.edu/files/SRR022918.errors.tar.gz), Я получил 403 отказа от отказа. Я проверил журнал ошибок Apache и нашел это сообщение.

[Fri Apr 20 23:09:55 2012] [error] [client xxx.xxx.xx.xx] (13)Permission denied: file permissions deny server access: /var/www/html/files/SRR022918.errors.tar.gz

Я попробовал установить разрешения для файлов и каталогов на 777, но это не решило проблему. Это действительно подозрительно, поэтому я предполагаю, что это имеет какое-то отношение к SELinux. У меня нет опыта работы с SELinux, так что я на правильном пути? Если да, то как это исправить?


6
2018-04-21 03:22


Источник


Следует отметить, что sudo iptables-save выводит только текущую конфигурацию iptables. Вам нужно будет сохранить это для / etc / sysconfig / iptables, чтобы пережить перезагрузку сервера. - becomingwisest
И как это делается? Извините за отсутствие опыта работы с Fedora ... - Daniel Standage
Я havent 'проверил это следующим образом, поэтому sudo cat / etc / sysconfig / iptables сначала, чтобы вы знали, что это до его изменения (или используйте cp для его резервного копирования). Но sudo iptables-save | sudo tee / etc / sysconfig / iptables должны работать. Затем проверьте содержимое, чтобы узнать, есть ли у вас правило (и), которое вы ожидаете. Если это так, вы можете проверить его, а затем запустить sudo service iptables restart. - becomingwisest
Почему вы используете Fedora в первую очередь? - womble♦
@womble Я лично предпочитаю Debian (сервер) и Ubuntu (рабочий стол), но выбор дистрибутива был решением моего начальника. - Daniel Standage


Ответы:


Если память работает, вам, вероятно, нужно запустить chcon -R -h -t httpd_sys_content_t /var/www/html

Это рекурсивно устанавливает ваш каталог содержимого в соответствующий контекст для Apache.


9
2018-04-21 03:30





Это разрешение на доступ к файлам, как вы ожидали, связано с SELinux. Это довольно сложно, но хорошие люди в CentOS собрали очень хорошая вики для вас, Короче говоря, вы можете отключить SELinux (абсолютно плохую идею), установить его в разрешающий режим (чуть менее плохую идею) или работать с SELinux. Поскольку вики подробно описывают детали, я буду держать ее СУХОЙ и позволить вам прочитать вики.

Я исправил мой, скопировав файлы в / var / www / html, а затем восстановил контекст по умолчанию для этой папки, используя:

restorecon -Rv /var/www/html

5
2017-08-12 02:31