Debian
為什麼 /var/www/html 只能由 root 寫入(預設情況下)?
在設置 LAMP(在 Debian 上)然後查看 /var/www/html 的權限後,我很驚訝它只能由 root (
drwxr-xr-x 1 root root
)寫入。推測 PHP 腳本可以在 /var/www/html 中創建文件,但 PHP 腳本(或它的解釋器)肯定不會以 root 的名義執行嗎?任何人都可以幫助我理解我的誤解嗎?
編輯:
我安裝了PHP
apt-get install php5-common libapache2-mod-php5 php5-mysql php5-cli
PHP 腳本將以下列方式執行:
- 執行 Apache 的使用者由
User
Apache 配置中的指令確定(通常是apache
或nobody
),如果您正在使用mod_php
- 如果您使用的是執行 PHP-FPM 的使用者
php-fpm
因此,使用者執行 PHP 腳本會有所不同。因此,您可以相應地設置所有者和組
/var/www/html
(或您所在的任何DocumentRoot
位置)。此外,您可能根本不希望您的 PHP 應用程序能夠在您
DocumentRoot
的文件中寫入(或覆蓋)文件,因為這可能允許訪問受感染或不安全的 PHP Web 應用程序的訪問者獲得遠端程式碼執行權限。因此,您有責任決定您的 PHP 應用程序是否足夠值得信賴,以允許它寫入 Apache 可以通過 Web 服務甚至執行的文件。出於與上述類似的原因,PHP 幾乎永遠不會(也不應該!)以 root 身份執行。