Por que o / var / www / html é gravável apenas pela raiz (por padrão)?

2

Depois de configurar o LAMP (no Debian) e, em seguida, observar as permissões do / var / www / html, fiquei surpreso por ele ser gravável apenas pelo root ( drwxr-xr-x 1 root root ).

Presumivelmente, scripts PHP podem criar arquivos em / var / www / html, mas certamente um script PHP (ou seu interpretador) não é executado em nome de root? Alguém pode me ajudar a entender o que eu estou entendendo mal?

EDITAR:

Eu instalei o PHP com apt-get install php5-common libapache2-mod-php5 php5-mysql php5-cli

    
por Museful 17.12.2016 / 00:18

2 respostas

5

Os scripts PHP serão executados como:

  • O usuário que está executando o Apache, conforme determinado pela diretiva User na sua configuração do Apache (geralmente apache ou nobody ), se você estiver usando mod_php
  • O usuário executando o PHP-FPM se você estiver usando php-fpm

Assim, o usuário que um script PHP executará como irá variar. Portanto, cabe a você definir o proprietário e o grupo de /var/www/html (ou onde quer que seu DocumentRoot seja).

Além disso, você pode não desejar que seu aplicativo PHP possa gravar (ou sobrescrever) arquivos no seu DocumentRoot , pois isso pode permitir que um visitante de um aplicativo da Web PHP comprometido ou inseguro obtenha execução remota de código privilégios. Portanto, é sua responsabilidade decidir se o seu aplicativo PHP é confiável o suficiente para permitir que ele grave em arquivos que o Apache pode servir pela Web ou até executar.

O PHP quase nunca (e nunca deve!) será executado como root por razões semelhantes às mencionadas acima.

    
por 17.12.2016 / 00:26
1

Centos / RHEL já usou root: root para /var/www/html. Trata-se de questão de segurança. Apache ou ninguém foi inseguro.Não é fácil hackear / var / www / html quando definir root: root.Debian estava atrasado para usar root: root em / var / www / html.

    
por 19.12.2016 / 20:09