サーバーを構築したときにすべてが正しくセットアップされたと思います(おそらく、VPS Host Linodeがセットアップを提供したのは事前構成されたLAMPでした)
すべてのApacheプロセスは、構成で意図したユーザーnobodyの下で実行されているようですが、低いPID(最も長く実行されているApacheプロセス)はまだrootの下で実行されており、私のPHPスクリプトは報告しているようです。 phpinfo()で尋ねることにより、rootとしての現在のユーザー。
これは、ルートがApacheを生成している可能性があり、その子がその構成に従って定義されたnobodyユーザーの下で正しく生成されているためですか?実際のページのいずれかがそのルートApacheプロセスを介して処理されますか、それとも親が存在するだけですか?
私は少し心配していますが、構成上の問題より少し多い場合は、これを修正するために新しい心で新しいApacheを起動しても問題ありません。
マイナーな追加情報の編集:$ _ SERVER ['Apache_run_user'](それに類似)がwww-dataを表示しているにもかかわらず(誰もいない場合でも)$ _ SERVER ['user']がルートであるように見えます。これがPHPのせいであるかどうかはわかりません。 PHPでルートファイルを編集してみてください。
編集2:いいえ、PHPはルートファイルを編集できません。 $ _SERVER ['user'](およびハッキーな監査スクリプト)は、PHPがルートであると想定するのは間違っていると思います。しかし、まだApacheプロセスについて疑問に思っています。
これは、ルートがApacheを生成している可能性があり、その子がその構成に従って定義されたnobodyユーザーの下で正しく生成されているためですか?
はい。
実際のページのいずれかがそのルートApacheプロセスを介して処理されますか、それとも親が存在するだけですか?
いいえ、ルートプロセスで処理されるページはありません。はい、親が存在するだけです。以下の理由により、そのようにする必要があります。
Apacheは、特権ポート(つまり、1023までの小さな番号のポート)(ほとんどが80または443)にバインドします。特権ポートにバインドするには、rootである必要があります。そのため、これらは「特権ポート」と呼ばれます。
メインのsshdプロセスを確認すると、そのプロセスもrootとして実行されていることがわかります。次に、sshを介して接続します。オッズは、メインプロセスから分岐した個人のsshdプロセスが、独自の非特権アカウントで実行されていることです。