Com o SELinux ativado, o Apache não consegue ler arquivos, a menos que sejam do mesmo tipo de domínio que o processo em execução.
Primeiro, verifique o tipo de domínio do processo httpd.
ps axZ|grep httpd
Em segundo lugar, verifique o domínio do tipo do arquivo .htpasswd.
ls -Z /var/www/html/server-auth/.htpasswd
Use o comando chcon
para alterar o domínio do arquivo para corresponder ao do processo httpd.
Exemplo:
chcon -Rv --type=httpd_sys_content_t /var/www/html/server-auth/.htpasswd
Isso mudará permanentemente, mas o contexto padrão do SELinux será reaplicado se o sistema de arquivos tiver que ser "remarcado". Se um usuário iniciar o processo de reclassificação, o SELinux lerá regras de / etc / selinux / * / contextts / files e aplicará as regras ao sistema de arquivos. Para evitar que, ao alterar arquivos modificados com chcon
, você tenha que criar uma nova regra usando o comando semanage
.
Exemplo:
semanage fcontext -a -t httpd_sys_content_t /var/www/html/server-auth/.htpasswd
Use chcon
primeiro, teste observando o log de auditoria em /var/log/audit/audit.log
. Quando tiver certeza de que as regras do SELinux corretas foram aplicadas, salve suas alterações com semanage
.
Você usa o comando restorecon
se precisar reverter suas alterações. restorecon
lê as regras de / etc / selinux / * / contextts / files e as aplica ao sistema de arquivos.
Exemplo:
restorecon -v /var/www/html/server-auth/.htpasswd
Leia mais sobre o SELinux no CentOS aqui link .