%3F.png)
Después de configurar LAMP (en Debian) y luego mirar los permisos de /var/www/html, me sorprendió que solo pueda escribirlo root ( drwxr-xr-x 1 root root
).
Presumiblemente, los scripts PHP pueden crear archivos en /var/www/html, pero seguramente un script PHP (o su intérprete) no se ejecuta en el nombre de la raíz. ¿Alguien puede ayudarme a entender lo que estoy entendiendo mal?
EDITAR:
Instalé PHP conapt-get install php5-common libapache2-mod-php5 php5-mysql php5-cli
Respuesta1
Los scripts PHP se ejecutarán como:
- El usuario que ejecuta Apache según lo determina la
User
directiva en su configuración de Apache (generalmenteapache
onobody
) si está utilizandomod_php
- El usuario que ejecuta PHP-FPM si está utilizando
php-fpm
Entonces, el usuario ejecutará un script PHP según variará. Por lo tanto, depende de usted configurar el propietario y el grupo /var/www/html
(o dondequiera que DocumentRoot
se encuentre) en consecuencia.
Además, es posible que no desee que su aplicación PHP pueda escribir (o sobrescribir) archivos en absoluto DocumentRoot
, ya que esto podría permitir que un visitante de una aplicación web PHP comprometida o insegura obtenga privilegios de ejecución remota de código. Por lo tanto, es su responsabilidad decidir si su aplicación PHP es lo suficientemente confiable como para permitirle escribir archivos que Apache pueda servir a través de la web o incluso ejecutar.
PHP casi nunca (¡y nunca debería!) se ejecutará como root por razones similares a las mencionadas anteriormente.
Respuesta2
Centos/RHEL ya usó root:root para /var/www/html. Se trata de un problema de seguridad. Apache o nadie no era seguro. No es fácil piratear /var/www/html cuando configuraba root:root.Debian llegó tarde a usar root:root en /var/www/html.