Estou tentando copiar um arquivo do meu servidor para o meu computador desktop. Coloquei-o em /var/www/html
(onde estão as páginas da web) e quando tento baixá-lo recebo o arquivo 403 Forbidden
. Eu até tentei chmod 777
no arquivo e não resolve.
O que estou fazendo de errado e por que estou recebendo esse erro?
Responder1
Você precisa modificar o arquivo para que ele seja propriedade do usuário Apache. Por padrão, o Apache será executado como www-data
usuário (encontrado no www-data
grupo). Você pode usar chown
para modificar o proprietário do arquivo (pode ser necessário usar com sudo
):
chown -R www-data:www-data /var/www/html
Finalmente, você precisa garantir que os arquivos tenham pelo menosao menospermissões de leitura e execução para o usuário Apache. Você já fez isso, como disse, mas depois de modificar todas as permissões/proprietários de arquivos, você deve garantir que está tudo bem executando ls -l /var/www/html
. Como medida de segurança, também é aconselhável remover todas as permissões de outros usuários:
chmod -R 0550 /var/www/html
Observe que se você usar PHP ou outra linguagem de script que exija acesso de gravação, talvez seja necessário modificar a máscara de permissão acima para 0770
. Como precaução, use essa máscara apenas em diretórios quando necessário (por exemplo, para gravar dados de cache de sites ou fazer upload de arquivos)
Responder2
Estou usando CentOS 7 + Apache, o único comando que resolveu meu problema foi esse (porque tentei chown+chmod antes):
sudo setenforce 0 #disable SELinux
E então, posso baixar o arquivo (no meu caso, anyfile.zip), mas ele pode abrir as portas para que invasores escrevam e executem código.
Responder3
Você provavelmente temSELinuxhabilitado. A maneira mais simples de contornar isso para o propósito atual é exibir o arquivo em questão para o ID do usuário com o qual o Apache está sendo executado.