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 件のコメント:
コメントを投稿