Apache-2.2

主 Apache pid 為 root,即使設置為沒人?

  • July 5, 2011

我相信我在建構伺服器時已經正確設置了所有內容(也許它是 VPS 主機 Linode 提供的預先配置的 LAMP 來進行設置)

似乎每個Apache程序都在使用者nobody下執行,這是我在配置中想要的,但是較低的PID(執行時間最長的Apache程序)仍然在root下執行,我的PHP腳本似乎將目前使用者報告為root通過在 phpinfo() 中詢問。

這是因為 root 可能正在生成 Apache,並且它的子級根據其配置在定義的 nobody 使用者下正確生成?是否有任何實際頁面是通過該根​​ Apache 程序處理的,還是只是作為父程序?

我有點擔心,但是如果它不僅僅是配置錯誤,那麼以全新的方式啟動一個新的 Apache 來解決這個問題是沒有問題的。

次要額外資訊編輯:出現 $ _SERVER[‘user’] is root even though $ _伺服器

$$ ‘apache_run_user’ $$(與此類似)顯示 www-data (即使不是沒有人),我不確定這是否是 PHP 的錯,也許我會嘗試在 PHP 中編輯根文件並查看.. 編輯 2:不,PHP 無法編輯根文件。猜$_SERVER

$$ ‘user’ $$(和一個駭人聽聞的審計腳本)假設 PHP 是 root 是錯誤的。不過,仍然想知道 Apache 程序。

這是因為 root 可能正在生成 Apache,並且它的子級根據其配置在定義的 nobody 使用者下正確生成?

是的。

是否有任何實際頁面是通過該根​​ Apache 程序處理的,還是只是作為父程序?

不,沒有頁面是通過根程序處理的,是的,它只有一個父程序。出於以下原因,它需要這樣。

Apache 綁定到一個特權埠(即一個小埠,最多 1023 並包括 1023),主要是 80 或 443。您需要是 root 才能綁定到特權埠:這就是為什麼它們被稱為“特權埠”。

如果您檢查您的主 sshd 程序,您會看到該程序也以 root 身份執行。現在通過 ssh 連接。賠率是您的個人 sshd 程序,從主程序分叉,在您自己的非特權帳戶下執行。

引用自:https://serverfault.com/questions/287054