suexecの実行可能なディレクトリ制限って鬱陶しくない?

suexec使うからにはセキュリティ上必要な機能だっていうのはわかるんだけど、特にCentOSのhttpdパッケージに含まれるsuexecは「–with-suexec-docroot=/var/www」なんかでコンパイルしてあるもんだから、CentOSの流儀ではsuexecを使用する場合、DocumentRootを/var/www以下に設定しないといけない。

パッケージ如きにディレクトリ・レイアウトを強制されるのもムカつくのだが、じゃあ、最初からパッケージ使わずにソースからインストールすればいいじゃん?というのはごもっともなのだが、やっぱメンテナンス性を考えるとパッケージの利便性を選択してしまう。(昔は何かよくわからずにとりあえず最新を追いかけたかったからソースインストールばかりしてたけど)

だったら、せめてSRPMから再ビルドすれば?って話なのだが、もちょっとお手軽(?)に件の設定を変更したい。所詮、設定値なのだから。

ということで、ちょっと強引な方法を紹介する。

用意するものは

  • suexec
  • emacs

そう、

emacsをバイナリエディタとして使用して、バイナリに含まれる値を変更してしまおう。

具体的なやり方は以下の通りである。なお、もちろん動作については一切保証しないので自己責任で試してね。

まずは何か問題が発生してもすぐに切り戻せるようにsuexecをバックアップしよう。

※suexecのインストール場所の確認
# rpm -ql httpd | grep suexec
/usr/sbin/suexec

※suexecのバックアップ
# cd /usr/sbin
# cp -p suexec suexec.bk

suexecの現在の設定値を確認する。

# ./suexec.bk -V
-D AP_DOC_ROOT=”/var/www
-D AP_GID_MIN=100
-D AP_HTTPD_USER=”apache”
-D AP_LOG_EXEC=”/var/log/httpd/suexec.log”
-D AP_SAFE_PATH=”/usr/local/bin:/usr/bin:/bin”
-D AP_UID_MIN=500
-D AP_USERDIR_SUFFIX=”public_html”
#

そして、emacs登場。

※バックアップの方をいぢる
# emacs suexec.bk

image3

バイナリエディタとして使用するために「hexl-mode」としよう。

emacs上で「M-x hexl-mode」とする。

image4

こんな感じ

image5

CGI実行可能なトップディレクトリのパス(今回は /var/www)を検索する

image6

カーソルを合わせて(画像の中の緑色の部分)

image7

今回 /var/www を /home へ変更するとして、「/home」と入力

image81

画像の例だと、/homewww となっているので、wwwの部分はnullにしよう。
emacs上で「M-x hexl-insert-hex-string」として

image9

nullにしたい各文字毎に「00」を入力、
※ 画像中では www を null に変えたいので 「000000」と入力した

image11

「/var/www」が「/home…」となったことを確認して保存( C-c C-s )すると下記のように聞かれるので「y」すると

image12

conding systemを選べとか言われるので、バカヤロー、バイナリだこのやろーということで「no-conversion」と入力

image13

無事保存出来たらemacsを終了しよう。

image14

さて、動作確認のために以下のコマンドを実行すると

# ./suexec.bk -V
-D AP_DOC_ROOT=”/home
-D AP_GID_MIN=100
-D AP_HTTPD_USER=”apache”
-D AP_LOG_EXEC=”/var/log/httpd/suexec.log”
-D AP_SAFE_PATH=”/usr/local/bin:/usr/bin:/bin”
-D AP_UID_MIN=500
-D AP_USERDIR_SUFFIX=”public_html”

あとは

# service httpd stop
# mv suexec suexec.orig
# mv suexec.bk suexec
# service httpd start

上記のようにsuexecを差し替えて適当に動作確認して下さい。suexecのログもちゃんと確認してね!

関連する投稿

このエントリは 2009年1月19日 06:42:21に投稿されました。 apache, unixの下にカテゴリされています。 RSS 2.0フィードを通してこのエントリのコメントをフォローすることが出来ます。 コメントするか、あなた自身のサイトからトラックバック出来ます。

add to hatena hatena.comment (5) add to del.icio.us (0) add to livedoor.clip (0) add to Yahoo!Bookmark (0) Total: 5

コメントする?