suEXECを利用する2016/06/13 |
|
通常、CGI の実行ユーザーは Apache の実行ユーザーID なのですが、
suEXEC 機能を利用すると、Apache 実行ユーザーID とは異なるユーザーID で CGI が実行できます。
|
|
| [1] | suEXEC を有効にします。 |
|
root@www:~#
root@www:~# apt-get -y install apache2-suexec-custom a2enmod suexec Enabling module suexec. To activate the new configuration, you need to run: service apache2 restartroot@www:~# systemctl restart apache2
|
| [2] | 例として、「ubuntu」ユーザーに設定したバーチャルホスト環境配下で、 「ubuntu」ユーザー権限で suEXEC 可能な設定をします。 |
|
root@www:~#
vi /etc/apache2/suexec/www-data # 先頭行に追記:suEXECの対象としたいディレクトリを記述
/home/ubuntu/public_html /var/www public_html/cgi-bin
root@www:~#
vi /etc/apache2/sites-enabled/virtual.host.conf
<VirtualHost *:80>
ServerName www.virtual.host
ServerAdmin webmaster@virtual.host
DocumentRoot /home/ubuntu/public_html
ErrorLog /var/log/apache2/virtual.host.error.log
CustomLog /var/log/apache2/virtual.host.access.log combined
LogLevel warn
# ubuntuを実行ユーザーとする
SuexecUserGroup ubuntu ubuntu
<Directory "/home/ubuntu/public_html">
Options +ExecCGI
AddHandler cgi-script .cgi .pl
</Directory>
</VirtualHost>
root@www:~# systemctl restart apache2
|
| [3] | ユーザー「ubuntu」で CGI テストページ(パーミッション700) を作成して動作確認をします。ページが表示されれば OK です。 |
|
ubuntu@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 |
|
|