Apache CentOS 7 403 Proibido alguém?

4

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.

    
por 1Raptor007 19.03.2015 / 00:55

1 resposta

1

Eu acho que descobri. O Apache estava funcionando, mas o último comando que fazia o ftp funcionar enquanto ainda estava executando o selinux era

setsebool -P ftpd_full_access on

Depois de definir isso, o FTP funcionou como deveria. Então, agora eu posso FTP do meu Windows 7 máquina, atualizar, publicar meus arquivos de site e Apache feliz entrega o conteúdo. Uau ... isso levou dias para resolver. Louco. Eu configurei outro usuário apenas para testar e tudo funciona bem.

    
por 20.03.2015 / 02:39