質問

php 5.2.6をlighttpd 1.4の下でcgiとして実行し、何らかの理由で常にrootとして実行しています。のすべてのphp-cgiプロセスはルートによって所有され、ファイルシステムに書き込まれるすべてのファイルはルートによって所有されます。

lighttpdのユーザーを非特権ユーザーとして設定してみましたが、rootとして実行されているのはphpのみであることが確認されています。

php-cgiをより安全なユーザーとして実行するにはどうすればよいですか?

役に立ちましたか?

解決

  1. 確認:

    server.username            = "nonprivuser"
    server.groupname           = "nonprivgroup"
    
  2. lighttpdを停止します。

  3. 既存のphpプロセスを確認し、それらを強制終了します。
  4. lighttpdを開始
  5. PHPプロセスが非特権として実行されていることを確認します

phpがまだrootとして実行されている場合は、SETUIDスクリプトがロードされている可能性があります(実際にはそうすべきではありませんが、実行可能です)

この場合、「bin-path」が参照するファイルにファンキーなものがないことを確認してください。

他のヒント

サーバー上でrootとして開始されたfastcgiプロセスがある可能性があります。この場合、fastcgiプロセスは引き続きlighttpdから呼び出されたphpプロセスを実行します。

サーバー上のfastcgiプロセスを強制終了し、lighttpdを再起動することをお勧めします。

fastcgiデーモンを起動する可能性のある起動スクリプトも調べてください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top