CPanel - 如何阻止 Apache 以 root 使用者身分執行?

CPanel - 如何阻止 Apache 以 root 使用者身分執行?
<?php echo `whoami`; ?>

所以這會返回“root”,我不知道如何防止它。我正在使用 WebHost Manager / CPanel,它應該會建立多個使用者/虛擬主機,並讓 Apache 作為該使用者/群組產生它的進程。這並沒有發生。

如果我登入 WHM 並開啟 PHP 和 SuExec 配置部分,我的設定為:

Default PHP Version (.php files)    5
PHP 5 Handler                       cgi
PHP 4 Handler                       none

Apache suEXEC                       on

怎麼了?如何讓 Apache 以正確的使用者身分而不是 root 身分運作?

答案1

如果您希望每個網站都以自己的使用者身分執行,則正確的 PHP 5 處理程序設定是「suPHP」而不是「CGI」。更改此設定後,您應該會看到您的whoami報告是各個用戶。

請注意,您可能必須執行 EasyApache 並在此過程中選擇“Mod SuPHP”來重新編譯 Apache / PHP,此選項才能首先可用。這是在以下情況下完成的:

主要 >> 軟體 >> EasyApache (Apache Update) 或在命令列上/scripts/easyapache

答案2

Apache 本身很可能以 apache 使用者身分執行,但由於 SuExec,root 擁有的 PHP 腳本將以 root 身分執行。這就是您的whoami命令返回 root 使用者的原因。

如果您將文檔根目錄中的檔案擁有者變更為「apache」或「www-data」(無論您的伺服器使用哪一個),那麼相同指令將傳回檔案的新擁有者。

確保所有 PHP 腳本chmod 555和目錄不屬於與檔案相同的使用者可能也是值得的。這將允許 CGI 執行腳本,但意味著如果在其中一個 PHP 腳本中發現缺陷,它將無法修改自身或任何其他腳本,並且無法建立新的腳本任何目錄中的腳本。如果攻擊者發現 PHP 腳本中的缺陷,他們仍然可以做很多事情,但您可以採取任何措施來讓他們變得更困難,這是值得的。

相關內容