Apache suexecはstraceで動作しません。

Apache suexecはstraceで動作しません。

Apacheインスタンスが有効になっていますmod_suexec。問題をデバッグしようとしていますが、Apacheを起動してstrace何が起こっているのかを確認します。

しかし、Apacheを次のように起動すると、次のようになります。

# strace -f -o /tmp/apache.strace /etc/init.d/apache2 start

エラーログには次のものが表示されます。

suexec failure: could not open log file
fopen: Permission denied

しかし、Apacheを正常に起動すると、すべてがうまく機能します。

使用されたメカニズムのいくつかがmod_suexec使用によって妨げられているようですが、strace正確に何が起こっているのかわかりません。strace正しく使用して動作する方法はありますか?mod_suexec

ベストアンサー1

straceptrace()システムコールを追跡するために使用されます。

追跡されるプロセスがsetuidまたはsetgidビットを持つファイルを実行しようとすると、プロセスがルート(またはCAP_SETUID機能を持つ)として実行されない限り、そのビットは無視されます(プロセスはプロセスの既存のuidとgidを使用して続行します。実行されます)。

あなたのWebサーバー(希望!)はrootとして実行されていないので、それを追跡するとsuexecのsetuidビットは無視され、Webサーバーのuidとして実行されます。

この問題を解決するには、suexecが起動するまでstraceの実行を回避し、strace -f -o ... -p pid-of-suexecsuexecのプロセスIDを見つけるのに時間を節約するためにしばらくスリープモードにするか、ファイルが表示されるのを待つコードを追加できます。 。

おすすめ記事