Назад | Перейти на главную страницу

Apache CentOS 7 403 Кому-нибудь запрещено?

Я пытаюсь настроить ситуацию, когда я могу подключиться по FTP к своему серверу Linux CentOS 7 и обновить файлы веб-сайта из моей системы Windows 7. На этом этапе я могу подключиться к папке моего пользователя по FTP с помощью vsftp (/ home / robert), и Apache, похоже, работает для веб-сайта по умолчанию (/ var / www / html). Я создал виртуальный хост для порта 8080, и если я укажу его на / var / www / 8080 / public_html, он будет работать нормально, но как только я укажу его на / home / robert / public_html, он вернется с 403 Forbidden. У вас нет разрешения на доступ к этому серверу. Журнал ошибок apache показывает

[Wed Mar 18 16:12:27.546621 2015] [core:error]
[pid 21204] (13)Permission denied: [client 192.168.1.66:57090]
AH00035: access to / denied (filesystem path '/home/robert')
because search permissions are missing on a component of the path

В файле конфигурации apache (/etc/httpd/conf/httpd.conf) есть эта запись для виртуального хоста

Listen 80
Listen 8080

# Virtual Hosts
<VirtualHost *:8080>
    ServerName 192.168.1.10:8080
#   DocumentRoot /var/www/8080/public_html
    DocumentRoot /home/robert/public_html
</VirtualHost>

Разрешения для /home/robert/public_html/index.html приведены ниже.

drwxr-xr-x.   7 root root   66 Mar  9 17:16 home
dr-x---r-x. 15 robert robert 4096 Mar 16 22:51 robert
drwxr-xr-x. 2 robert robert   23 Mar 17 23:28 public_html
-rwxr-xr-x. 1 robert robert 332 Mar 17 23:28 index.html

Это похоже на проблему с разрешениями, но я не понимаю, как действовать. Нужно ли мне добавлять пользователя apache в мою индивидуальную группу robert? Selinux здесь что-то делает? Любая помощь будет оценена. Спасибо.

ОБНОВЛЕНО: хорошо, мне кажется, что все веб-сайты должны быть расположены в папке / var / www /. Похоже, что selinux этого хочет. Итак, как мне удаленно FTP и получить доступ (чтение / запись) к файлам веб-сайта ??? Скажем, я хочу, чтобы пользователь Роберт подключился к FTP в / var / www / testweb и мог читать / записывать файлы там. Как это достигается ???

ОБНОВЛЕНО: Я посмотрел на опубликованный ответ и выполнил три команды ниже

setsebool -P httpd_enable_homedirs on
setsebool -P ftp_home_dir on
restorecon -r -v /home

Похоже, он что-то сделал, но результат тот же. Я все еще могу использовать FTP в папке пользователя, но веб-сайт не отображается ... Ошибка 403.

ОБНОВЛЕНО: Я также попытался запустить следующую команду, но она выдала ошибку во всех файлах

Команда я побежала

chcon -Rv --type=httpd_t /home/robert/public_html

Я получил ошибку

chcon: failed to change context of ‘index.html’ to ‘unconfined_u:object_r:httpd_t:s0’: Permission denied

Я также отключил selinux с помощью setenforce 0, но я все еще получил 403. Совет был оценен ... спасибо.

Я думаю, что разобрался. Apache работал, но последней командой, которая заставляла ftp работать при работающем selinux, была

setsebool -P ftpd_full_access on

Как только я это установил, FTP работал как надо. Итак, теперь я могу использовать FTP со своего компьютера с Windows 7, обновлять, публиковать, изменять файлы моего веб-сайта, и Apache с радостью доставляет контент. Ух ты ... на это ушли дни. Псих. Я настраиваю другого пользователя просто для тестирования, и все работает нормально.