Apache 実行ユーザーの umask の設定方法をメモ。
# find / -name envvars
/usr/local/apache2/bin/envvars
# vim /usr/local/apache2/bin/envvars
# umask 002 to create files with 0664 and folders with 0775
umask 002
# service httpd restart
例えば、Capistrano での自動デプロイ運用で、この設定が役に立つ。
Capistrano で自動デプロイするときに、色んなユーザから deploy できるようにしたい場合にぶつかるファイルのパーミッション問題を umask の設定で解決できる。
Apache とデプロイ権限のあるユーザを共通グループ(deploy とか)に所属させて、運用させたいWebアプリのファイルのグループ所有にする。
そして、パーミッションもファイルは 664、ディレクトリは 775 にすれば、cap deploy:cleanup とかでファイルを削除するタイミングでもエラーが出ることはなくなるはず。
[参考]:/etc/sysconfig/httpd