Я пытаюсь установить gitolite 3 на сервер apache2. Поэтому мне нужно запустить сценарий CGI, принадлежащий git:git
. Моя конфигурация для достижения этой цели (в основном на основе этот) является:
<VirtualHost myserver.com>
ServerName myserver.com
ServerAlias git
SuexecUserGroup git git
ScriptAliasMatch "(?x)^/(.*/(HEAD | info/refs | objects/(info/[^/]+ | [0-9a-f]{2}/[0-9a-f]{38} | pack/pack-[0-9a-f]{40}\.(pack|idx)) | git-(upload|receive)-pack))$" \
/srv/www/gitolite_suexec_wrapper.sh/$1
</VirtualHost>
Проблема, с которой я сталкиваюсь, заключается в том, что всякий раз, когда запрос соответствует моему регулярному выражению псевдонима stript, клиент получает 403, и мои журналы ошибок apache (настроенные на уровень отладки) сообщают мне следующее:
client denied by server configuration: /srv/www/gitolite_suexec_wrapper.sh
На моем сервере apache2 есть пользователь wwwrun и группа www. Модуль suexec запущен, поэтому я тестирую, что все в порядке, вот так:
su -c "/usr/sbin/suexec2 true" wwwrun
suexec policy violation: see suexec log for more details
Таким образом, этот пользователь может запустить suexec. Раньше у меня были неправильные разрешения на моем /srv/www/gitolite_suexec_wrapper.sh
и были зарегистрированы линии /var/log/apache2/suexec.log
, теперь у меня ничего нет, поэтому я полагаю, что мои права установлены правильно в отношении suexec и сценария упаковки.
И я все еще не уверен, должен ли этот скрипт принадлежать wwwrun:www
или git:git
владелец скрипта, который мне нужен для запуска apache2. Я думаю из suexec справка что это должно быть wwwrun:www
, в любом случае я пробовал оба, и оба не работали.
su -c "/srv/www/gitolite_suexec_wrapper.sh" wwwrun
Дает вывод, поэтому я думаю, что мои разрешения установлены правильно для этого скрипта.
Что еще я должен проверить? Что я сделал не так?
Заранее спасибо за вашу помощь!
Хорошо, я нашел решение, мне пришлось предоставить доступ к файлу сценария следующим образом (на том же виртуальном хосте):
<Directory "/srv/www">
<Files "gitolite_suexec_wrapper.sh">
Order allow,deny
Allow from all
</Files>
</Directory>
И тогда это хорошо.