Apacheの子プロセスの実行ユーザーがデータディレクトリに書き込む方法
UbuntuのApacheではroot権限で起動した後、実際にリクエストを受ける子プロセスが「www-data」というユーザーで実行されます。
psコマンドで、実際のプロセスを見てみましょう。grepコマンドでapacheを絞り込みます。
ps -ef | grep apache
root 1624 1 0 Jun05 ? 00:00:10 /usr/sbin/apache2 -k start admins 10576 10188 0 13:11 pts/1 00:00:00 grep --color=auto apache www-data 115206 1624 0 06:25 ? 00:00:00 /usr/sbin/apache2 -k start www-data 115207 1624 0 06:25 ? 00:00:00 /usr/sbin/apache2 -k start
Ubuntuサーバー構築入門では、アプリケーション用のグループ「myapp-group」を作成して、グループに所属するユーザーがデータディレクトリに書き込める運用を紹介しています。
もし、CGIアプリケーションが存在して、Aapcheで起動される場合に、このデータディレクトリに、ファイルを書き込むためには「www-data」ユーザーを、gpasswdコマンドで、myapp-groupグループに追加してください。
sudo gpasswd -a www-data myapp-group