suEXECを利用する2015/06/03 |
通常、CGI の実行ユーザーは Apache の実行ユーザーID ですが、
suEXEC機能を使うと、Apache 実行ユーザーIDとは異なるユーザーIDで CGI が実行できます。
|
|
[1] | suEXECを有効にします。 |
root@www:~#
root@www:~# aptitude -y install apache2-suexec-custom 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>
root@www:~# 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> 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"; chmod 700 public_html/suexec.cgi |
Sponsored Link |
|