Warum ist /var/www/html (standardmäßig) nur von root beschreibbar?

Warum ist /var/www/html (standardmäßig) nur von root beschreibbar?

Nachdem ich LAMP (unter Debian) eingerichtet und mir dann die Berechtigungen für /var/www/html angesehen hatte, war ich überrascht, dass nur Root ( drwxr-xr-x 1 root root) darauf schreiben kann.

Angeblich können PHP-Skripte Dateien in /var/www/html erstellen, aber ein PHP-Skript (oder sein Interpreter) wird doch sicher nicht im Namen von root ausgeführt? Kann mir jemand helfen, mein Missverständnis zu verstehen?

BEARBEITEN:

Ich habe PHP installiert mitapt-get install php5-common libapache2-mod-php5 php5-mysql php5-cli

Antwort1

PHP-Skripte werden wie folgt ausgeführt:

  • Der Benutzer, der Apache ausführt, wie durch die UserDirektive in Ihrer Apache-Konfiguration bestimmt (normalerweise apacheoder nobody), wenn Sie verwendenmod_php
  • Der Benutzer, der PHP-FPM ausführt, wenn Sie verwendenphp-fpm

Der Benutzer, unter dem ein PHP-Skript ausgeführt wird, kann also variieren. Es liegt also an Ihnen, den Eigentümer und die Gruppe /var/www/html(oder wo auch immer Ihr Eigentümer DocumentRootist) entsprechend festzulegen.

Darüber hinaus möchten Sie möglicherweise nicht, dass Ihre PHP-Anwendung überhaupt Dateien in Ihrem Browser schreiben (oder überschreiben) kann DocumentRoot, da dies einem Besucher einer kompromittierten oder unsicheren PHP-Webanwendung die Möglichkeit geben könnte, Remotecodeausführungsrechte zu erlangen. Es liegt also in Ihrer Verantwortung zu entscheiden, ob Ihre PHP-Anwendung vertrauenswürdig genug ist, um in Dateien schreiben zu dürfen, die Apache über das Web bereitstellen oder sogar ausführen kann.

PHP wird aus ähnlichen Gründen wie den oben genannten fast nie (und sollte nie!) als Root ausgeführt werden.

Antwort2

Centos/RHEL haben bereits root:root für /var/www/html verwendet. Es geht um ein Sicherheitsproblem. Apache oder niemand war unsicher. Es ist nicht einfach, /var/www/html zu hacken, wenn root:root festgelegt ist. Debian hat root:root auf /var/www/html erst spät verwendet.

verwandte Informationen