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

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

Depois de configurar o LAMP (no Debian) e observar as permissões de /var/www/html, fiquei surpreso ao ver que ele só pode ser gravado 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 intérprete) não é executado em nome de root? Alguém pode me ajudar a entender o que estou entendendo mal?

EDITAR:

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

Responder1

Os scripts PHP serão executados como:

  • O usuário executando o Apache conforme determinado pela Userdiretiva na configuração do Apache (geralmente apacheou nobody) se você estiver usandomod_php
  • O usuário executando PHP-FPM se você estiver usandophp-fpm

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

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

O PHP quase nunca (e nunca deveria!) ser executado como root por motivos semelhantes aos mencionados acima.

Responder2

Centos/RHEL já usou root:root para /var/www/html.É uma questão de segurança. apache ou ninguém era inseguro. Não é fácil hackear /var/www/html quando ele configurou root:root.O Debian demorou para usar root:root em /var/www/html.

informação relacionada