Permissões em diretórios do Apache no CentOS
Dica publicada em Linux / Segurança
Permissões em diretórios do Apache no CentOS
Dica testada no CentOS 6.9.
Compartilho uma experiência aqui que pode ajudar usuários com o mesmo problema. Num servidor CentOS há o diretório "/var/www/html". Arquivos HTML colocados dentro podem ser lidos normalmente. Mas o meu objetivo era criar um diretório chamado "arquivos" para disponibilizar arquivos PDF e outro chamado "conversor" que iria receber arquivos PDF para executar um script (que não é objeto desta dica).
Em resumo:
Mas as permissões precisavam ser configuradas, pois caso contrário o acesso à leitura de PDF seria proibida e o armazenamento de PDF também.
Após googlar bastante me deparei com uma linda informação que dizia:
Em resumo a solução foi a seguinte:
# chown apache:apache -R /var/www/html/arquivos
# cd /var/www/html/arquivos
# find . -type f -exec chmod 0644 {} \;
# find . -type d -exec chmod 0755 {} \;
# chcon -t httpd_sys_content_t /var/www/html/arquivos -R
E repetir tudo novamente só que para o diretório "conversor". Adicionando este comando para permitir a escrita:
# chcon -t httpd_sys_rw_content_t /var/www/html/conversor -R
Após isso, tudo funcionou como esperado. Pois os arquivos puderam ser lidos e o conversor que faz upload de arquivos PDF pode funcionar.
Segue a fonte que me ajudou: CentOS 7 + SELinux + PHP + Apache – cannot write/access file no matter what | Lysender's Daily Log Book
Compartilho uma experiência aqui que pode ajudar usuários com o mesmo problema. Num servidor CentOS há o diretório "/var/www/html". Arquivos HTML colocados dentro podem ser lidos normalmente. Mas o meu objetivo era criar um diretório chamado "arquivos" para disponibilizar arquivos PDF e outro chamado "conversor" que iria receber arquivos PDF para executar um script (que não é objeto desta dica).
Em resumo:
- /var/www/html/arquivos --> disponibilizar PDF
- /var/www/html/conversor --> receber PDF e executar um script
Mas as permissões precisavam ser configuradas, pois caso contrário o acesso à leitura de PDF seria proibida e o armazenamento de PDF também.
Após googlar bastante me deparei com uma linda informação que dizia:
Surprise! SELinux is here!Ou seja, não importava o que fosse feito com relação às permissões, sem configurar o SELinux seria impossível.
"You guys choose CentOS, so you got SELinux as well."
Em resumo a solução foi a seguinte:
# chown apache:apache -R /var/www/html/arquivos
# cd /var/www/html/arquivos
# find . -type f -exec chmod 0644 {} \;
# find . -type d -exec chmod 0755 {} \;
# chcon -t httpd_sys_content_t /var/www/html/arquivos -R
E repetir tudo novamente só que para o diretório "conversor". Adicionando este comando para permitir a escrita:
# chcon -t httpd_sys_rw_content_t /var/www/html/conversor -R
Após isso, tudo funcionou como esperado. Pois os arquivos puderam ser lidos e o conversor que faz upload de arquivos PDF pode funcionar.
Segue a fonte que me ajudou: CentOS 7 + SELinux + PHP + Apache – cannot write/access file no matter what | Lysender's Daily Log Book