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

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

設定 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

答案1

PHP 腳本將會運行為:

  • 如果您使用的是 Apache,則由UserApache 配置中的指令(通常apache或)決定執行 Apache 的用戶nobodymod_php
  • 運行 PHP-FPM 的用戶(如果您正在使用)php-fpm

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

此外,您可能根本不希望您的 PHP 應用程式能夠寫入(或覆蓋)您的文件DocumentRoot,因為這可能會讓存取受損或不安全的 PHP Web 應用程式的訪客獲得遠端程式碼執行權限。因此,您有責任決定您的 PHP 應用程式是否足夠值得信賴,以允許其寫入 Apache 可以透過網路提供服務甚至執行的檔案。

PHP 幾乎永遠不會(也不應該!)以 root 身份運行,原因與上面提到的類似。

答案2

Centos/RHEL已經使用root:root作為/var/www/html。 apache 或沒有人是不安全的。

相關內容