¿Por qué /var/www/html solo puede escribirse mediante root (de forma predeterminada)?

¿Por qué /var/www/html solo puede escribirse mediante root (de forma predeterminada)?

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 Userdirectiva en su configuración de Apache (generalmente apacheo nobody) si está utilizandomod_php
  • El usuario que ejecuta PHP-FPM si está utilizandophp-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 DocumentRootse 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.

información relacionada