PHPやJavaScriptなどの覚え書き、たまに愚痴、反省など。
mod_ruidを導入した。
バーチャルホスト用サーバーの構築にあたり、suExecをやめてmod_ruidを導入した。
OSはCentOS5.x
suExecとは違って、DSO版のPHPに対してもuidが設定されるところが、suExecに対するメリット。
インストール手順
まずはじめに、suExecを無効にする。
# mv /usr/sbin/suexec /usr/sbin/suexec.disabled # /etc/init.d/httpd restart
libcap-devel及びhttpd-develをインストール。
# yum install libcap-devel # yum install httpd-devel
mod_ruidをダウンロードしてインストール
# wget http://websupport.sk/~stanojr/projects/mod_ruid/mod_ruid-0.6.tar.gz # tar xvzf mod_ruid-0.6.tar.gz # apxs -a -i -l cap -c mod_ruid.c
最後にhttpdを再起動
# /etc/init.d/httpd restart
テスト
httpd.confのVirtualHostディレクティブに以下のような行を挿入して再起動する。
RMode config RUidGid user group
以下のようなphpスクリプトを作成して、作成されたファイルのパーミッションを確認したら、設定したuser、groupであることを確認できた。
<?php file_put_contents(dirname(__FILE__).'/test.txt', 'test'); print 'OK'; ?>
Perl/CGIでも同様のテスト。
#!/usr/bin/perl print "Content-type: text/html\n\n"; open(OUT, "> test.txt"); print OUT 'test'; close(OUT); print 'OK'; exit;
試しにcgiのオーナーをrootに変更してパーミッションを744(rootのみ実行可)に変更したら、期待通りエラーが出た。
さらにオーナーがrootのままパーミッションを755に変更したら、httpd.confで指定したユーザーでファイルが生成された。これも期待通り。
たしか、suExecではCGIスクリプトのオーナーがsuExecで指定されたユーザーと違う場合は動かないので、この挙動はsuEXecとは違うみたい。柔軟性がある?ということで。(笑)
| この記事は miya によって 2009 年 1 月 29 日 1:31 AM に投稿されました, 未分類 以下に保存されています。 RSS 2.0 を通してコメントをフォローする。 コメントを残すか、ご自分のサイトからトラックバックできます。 |
コメント無し
トラックバックはありません。
Additional comments powered by BackType
