Настройка suexec под Debian

Недавно потребовалось на своем VDS с Debian 7 создать отдельного пользователя и предусмотреть для него возможность запуска скриптов от его имени. Как выяснилось, это не особо сложно:


для начала включаем модули cgi и suexec в Apache:


# a2enmod cgi suexec

и прописываем в конфигурационном файле сайта директиву SuexecUserGroup, а также указание на необходимость обработки файлов .py (в моем случае требовалось разрешить скрипты на python):


<VirtualHost *:80>
ServerName test.ru
SuexecUserGroup user1 user1
Options +ExecCGI
AddHandler cgi-scipt .py
....
</VirtualHost>

Однако если перезапустить Apache сейчас, он выдаст предупреждение "SuexecUserGroup directive requires SUEXEC wrapper.". Чтобы все заработало, нужно установить пакет apache2-suexec-custom. (Тут я сначала допустил ошибку, поставив простой apache2-suexec — у него нет возможности изменять docroot, и он будет позволять запускать скрипты только из /var/www, а на остальные ругаться "command not in docroot".)


# apt-get install apache2-suexec-custom

Далее открываем файл /etc/apache2/suexec/www-data и прописываем там путь (в моем случае это что-то вроде /home/user1/test.ru). Далее остается только перезапустить Apache:


# service apache2 restart

и не забыть проставить проставить корректные разрешения на исполняемом файле (а также то, что для корректной работы скрипты нужно грузить в ASCII-режиме).