O Apache foi executado como root?

2

Estou repensando a permissão do nosso servidor e a estratégia do grupo. Então, eu estava tentando verificar quais permissões eram necessárias com a configuração atual do Apache para acessar os arquivos.

Eu mudei as permissões de index.php para 200 (só escrevo para usuário). Mas o Apache ainda pode ler este arquivo ! Eu reiniciei o Apache, o que resolveu esse problema. O Apache estava sendo executado como root ou era necessário reinicializá-lo para que as permissões entrassem em vigor?

    
por Znarkus 19.11.2009 / 14:07

5 respostas

3

Com o apache, você o inicia como root, mas o apache altera seu usuário logo após o início. O seguinte, nos arquivos de configuração do apache, define qual usuário será executado como:

User www-data
Group www-data

Ele deve iniciar como root em geral, para que possa se vincular a portas < 1024. Então execute ps aux como o wonble disse para ver como foi iniciado, e ajuste essas diretivas se você quiser alterar qual usuário está sendo executado.

    
por 19.11.2009 / 14:27
2

Em muitas distribuições linux, o apache está sendo executado como www-data por padrão

Por isso é difícil dizer sem saber sua distribuição

    
por 19.11.2009 / 14:13
1

A melhor maneira de informar as permissões de um processo é com ps aux - que lista o UID dos processos. Agora que você reiniciou o processo, não há uma maneira real de ver o que estava acontecendo, além de ter algo como a contabilidade de processo do BSD em execução.

    
por 19.11.2009 / 14:21
0

O Chmod 200 permitirá que o proprietário do arquivo grave, mas não leia o arquivo.

O que você quer fazer é o seguinte:

Deixe o usuário "joe" possuir os arquivos. Deixe o grupo "www-data" ler. Dessa forma - joe pode efetuar login e modificar / fazer upload de arquivos, enquanto o apache ainda pode lê-los (chown joe: pasta ou arquivo www-data).

Chmod * s deve ser configurado para algo como 750 (ou 740, se você não quiser a listagem de diretórios possível) para pastas, e 640 (ou 750, se for um CGI) em arquivos.

Estou aconselhando você a aprender como o chmod / chown interage e como as diferentes permissões se aplicam. Por favor, leia o seguinte artigo útil no Wikipeda: Chmod

    
por 19.11.2009 / 14:30
0

Eu estou corrigido. A razão real para o apache ter sido capaz de ler o arquivo indicaria que ele estava sendo executado como root. Outra explicação seria que a resposta tivesse sido armazenada no navegador.

Eu escrevi originalmente: " Eu acho que o apache tinha uma cópia em cache do index.php na memória. É por isso que parecia que ainda podia ler o arquivo apesar da mudança de permissão. "

    
por 19.11.2009 / 14:21