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 |
Sponsored Link |