%3F.png)
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
User
diretiva na configuração do Apache (geralmenteapache
ounobody
) se você estiver usandomod_php
- O usuário executando PHP-FPM se você estiver usando
php-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.