Permissão negada: não foi possível abrir o arquivo de senhas.

4

Estou usando o chapéu do Apache Red.

Eu tenho .htaccess no meu / var / www / html com permissões como segue

-rwxr-xr-x. 1 apache apache 127 Dec 18 14:17 .htaccess

.htaccess tem o seguinte conjunto de dados dentro dele

AuthType Basic
AuthName "Restricted Access"
AuthUserFile /var/www/html/server-auth/.htpasswd
Require user manu

Permissões em var / www / html / server-auth / .htpasswd

-rwxr-xr-x. 1 apache apache 40 Dec 16 19:11 .htpasswd

Quando abro minha página da Web no navegador e depois de colocar o nome de usuário e a senha, os avisos de login reaparecem. Mesmo se o nome de usuário e a senha estiverem corretos.

Registros de erro:

(13) Permissão negada: não foi possível abrir o arquivo de senhas: /var/www/html/server-auth/.htpasswd

acesso a / failed, razão: verificação do ID do usuário 'manu' não configurado

Qualquer ajuda!

    
por user1486269 18.12.2015 / 21:05

2 respostas

6

Você está tendo este problema por causa do contexto de segurança do SELinux.

Para superar isso, você precisa alterar o rótulo selinux do diretório / arquivo em questão.

Você pode descobrir o contexto de segurança do processo apache usando ps axZ | grep httpd .

E verifique o mesmo para ls -Z /var/www/html/server-auth/.htpasswd

Para ajustar a rotulagem do diretório, tente: chcon command (é como chown ). Para torná-lo permanente, você pode usar: semanage command.

Instruções detalhadas e uma leitura obrigatória aqui: link

    
por 18.12.2015 / 22:11
3

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 .

    
por 18.12.2015 / 21:47