Debian 8 Jessie
Sponsored Link

suEXECを利用する
2015/06/03
 
通常、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.
To activate the new configuration, you need to run:
  service apache2 restart
[2] 一般ユーザー「debian」のホームディレクトリ配下を suEXECする 例として設定します。 サイトの設定はバーチャルホストの項で設定したものを例にします。
root@www:~#
vi /etc/apache2/suexec/www-data
# 先頭行に追記:suEXECの対象としたいディレクトリを記述

/home/debian/public_html

/var/www
public_html/cgi-bin
root@www:~#
vi /etc/apache2/sites-available/virtual.host.conf
<VirtualHost *:80>
    ServerName www.virtual.host
    ServerAdmin webmaster@virtual.host
    DocumentRoot /home/debian/public_html
    ErrorLog /var/log/apache2/virtual.host.error.log
    CustomLog /var/log/apache2/virtual.host.access.log combined
    LogLevel warn
   
# 追記:debian を実行ユーザーとする

   
SuexecUserGroup debian debian

</VirtualHost>
root@www:~#
systemctl restart apache2
[3] ユーザー「Debian」で CGI テストページ(パーミッション700)を作成して動作確認をします。 以下のようなページが表示されればOKです。
debian@www:~$
mkdir public_html

debian@www:~$
chmod 755 public_html

debian@www:~$
vi public_html/suexec.cgi
#!/usr/bin/perl

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

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

 
Tweet