Estou tentando configurar uma situação em que posso fazer FTP para o meu servidor Linux CentOS 7 e atualizar os arquivos do site do meu sistema Windows 7. Neste ponto eu posso FTP para a pasta do meu usuário usando vsftp (/ home / robert) e Apache parece funcionar para o site padrão (/ var / www / html). Eu criei um host virtual para a porta 8080 e se eu apontar para / var / www / 8080 / public_html ele funciona bem, mas assim que eu apontar para / home / robert / public_html, ele volta com 403 Forbidden. Você não tem permissão para acessar / neste servidor.
O log de erro do apache mostra
[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
O arquivo conf do apache (/etc/httpd/conf/httpd.conf) possui esta entrada para o Virtual Host
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>
As permissões para /home/robert/public_html/index.html estão abaixo
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
Isso parece um problema de permissões, mas não estou claro como proceder. Preciso adicionar o usuário do apache ao meu grupo individual robert? O selinux está fazendo alguma coisa aqui? Qualquer ajuda seria apreciada. Obrigado.
ATUALIZADO: ok, parece-me que todos os sites devem estar localizados na pasta / var / www /. Parece que o selinux quer assim. Então, como posso remotamente FTP e acessar (ler / escrever) os arquivos do site? Vamos dizer que eu quero o usuário robert para o FTP em / var / www / testweb e ser capaz de ler / gravar os arquivos lá. Como isso é feito?
ATUALIZADO: olhei a resposta postada e executei os três comandos abaixo
setsebool -P httpd_enable_homedirs on
setsebool -P ftp_home_dir on
restorecon -r -v /home
Parece que fez alguma coisa, mas o resultado é o mesmo. Eu posso FTP para pasta de usuário ainda, mas o site não aparece ... 403 erro.
ATUALIZADO: também tentei executar o seguinte comando, no entanto, ele causou erros em todos os arquivos
Comando que eu corri
chcon -Rv --type=httpd_t /home/robert/public_html
Erro que recebi
chcon: failed to change context of ‘index.html’ to ‘unconfined_u:object_r:httpd_t:s0’: Permission denied
Eu também desliguei o selinux usando setenforce 0, mas ainda consegui 403.
Conselho apreciado ... obrigado.