2009年6月2日火曜日

apacheで起こった出来事

apacheの設定ファイルにhttpd.confというのがあるのはインストールしたことがある人なら分かるかと思います。apacheのデーモン自体はrootで実行するのが普通だと思いますが、apache内での実行するユーザーとグループをhttpd.confの

User hoge
Group hoge

とかで指定することができます。
例えば、sudo権を持ってるhogeユーザーが

# sudo su -
# apachectl start

とやるとrootの環境変数を読み込んでapacheを起動して中での実行はhogeが行うことになります。
例えば、PHPとかでディレクトリを作ったりするとhogeユーザーが作ったのと同じようなことになるということです。


hogeユーザーが

# sudo /・・・/apachectl start

とやったら、hogeユーザーの環境変数でrootがapacheを実行して、中ではhogeユーザーが頑張ると言った構図で実質、hogeユーザーの天下となるはずで今までもちゃんとなってたのですが、
なぜか、PATHの環境変数は読み込むのにLD_LIBRARY_PATHの環境変数を読み込んでくれないという事象に陥りました。原因不明。

色々試しても解決せず仕方がなかったので、apachectl自体に

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/hogehoge/lib

のような形で記述してapacheを再起動して読み込ませました。今まで問題なかったのになんででしょう。。
一応補足しておくとapacheが万一乗っ取られたときにために何もできないようNologinのユーザーで実行すべきかと思います。

0 件のコメント: