Debian 6.0
Sponsored Link

suEXECを使う2011/03/10

  通常、CGIの実行ユーザーはApacheの実行ユーザーIDなのですが、 suEXEC機能を使うと、Apache実行ユーザーIDとは異なるユーザーIDでCGIが実行できます。

[1] suEXECを有効にする
root@www:~#
aptitude -y install apache2-suexec-custom


root@www:~#
a2enmod suexec

Enabling module suexec.
Run '/etc/init.d/apache2 restart' to activate new configuration!
[2] 一般ユーザー「squeeze」のホームディレクトリ配下をsuEXECする例として設定してみます。 サイトの設定はバーチャルホストの項で設定したものです。
root@www:~#
vi /etc/apache2/suexec/www-data


# 先頭行に追記:suEXECの対象としたいディレクトリを記述

/home/squeeze/public_html

/var/www
public_html/cgi-bin

root@www:~#
vi /etc/apache2/sites-enabled/virtual.host


<VirtualHost *:80>
ServerName www.virtual.host

ServerAdmin webmaster@virtual.host

DocumentRoot /home/squeeze/public_html

ErrorLog /var/log/apache2/virtual.host.error.log

CustomLog /var/log/apache2/virtual.host.access.log combined

LogLevel warn

# 追記:squeezeを実行ユーザーとする

SuexecUserGroup squeeze squeeze

</VirtualHost>

root@www05:~#
/etc/init.d/apache2 restart

Restarting web server: apache2 ... waiting .
[3] ユーザー「squeeze」でCGIテストページ(パーミッション700)を作成して動作確認をします。 以下のようなページが表示されればOKです。
squeeze@www:~$
cd public_html

squeeze@www:~/public_html$
vi suexec.cgi


#!/usr/local/bin/perl

print "Content-type: text/html\n\n";
print <<"EOM";
<html>
<body>
<div style="width: 100%; font-size: 40px; font-weight: bold; text-align: center;">
suEXEC Test Page
</div>
</body>
</html>
EOM
exit;


squeeze@www:~/public_html$
chmod 700 suexec.cgi

 
関連コンテンツ