Apache2 ユーザーのホームディレクトリをルートにロックする

Apache2 ユーザーのホームディレクトリをルートにロックする

Apache2 を使用して django アプリをデプロイしています。apache2 を apache とは別のユーザーに設定しました。問題は、サーバーの実行時にユーザーが変更されるのに、ホーム ディレクトリ環境変数 ($HOME) が /root のままであることです。なぜでしょうか。

答え1

私は Linux/Unix の内部構造の専門家ではありませんが、実効ユーザー ID を変更するシステム コールは環境変数を変更しないと思います。

環境変数は、新しいプロセスが exec() または spawn() されている場合、つまり Apache を起動した場合にのみ関係します。

$HOME を別の値に設定する小さなラッパー スクリプトを記述してから、Apache を起動することができます。Debian を使用している場合は、/etc/init.d/apache2 を変更するだけです。

関連情報