Debian

為什麼 /var/www/html 只能由 root 寫入(預設情況下)?

  • December 19, 2016

在設置 LAMP(在 Debian 上)然後查看 /var/www/html 的權限後,我很驚訝它只能由 root (drwxr-xr-x 1 root root)寫入。

推測 PHP 腳本可以在 /var/www/html 中創建文件,但 PHP 腳本(或它的解釋器)肯定不會以 root 的名義執行嗎?任何人都可以幫助我理解我的誤解嗎?

編輯:

我安裝了PHPapt-get install php5-common libapache2-mod-php5 php5-mysql php5-cli

PHP 腳本將以下列方式執行:

  • 執行 Apache 的使用者由UserApache 配置中的指令確定(通常是apachenobody),如果您正在使用mod_php
  • 如果您使用的是執行 PHP-FPM 的使用者php-fpm

因此,使用者執行 PHP 腳本會有所不同。因此,您可以相應地設置所有者和組/var/www/html(或您所在的任何DocumentRoot位置)。

此外,您可能根本不希望您的 PHP 應用程序能夠在您DocumentRoot的文件中寫入(或覆蓋)文件,因為這可能允許訪問受感染或不安全的 PHP Web 應用程序的訪問者獲得遠端程式碼執行權限。因此,您有責任決定您的 PHP 應用程序是否足夠值得信賴,以允許它寫入 Apache 可以通過 Web 服務甚至執行的文件。

出於與上述類似的原因,PHP 幾乎永遠不會(也不應該!)以 root 身份執行。

引用自:https://unix.stackexchange.com/questions/330972