Назад | Перейти на главную страницу

Интеграция Redmine с svn при запуске пассажира в качестве пользовательских www-данных

У меня проблемы с работой пассажира и svn в Redmine.

Система

Проблема

Когда я позволяю Passenger выполнять обычное переключение пользователей и работать как www-data, интеграция svn не работает. Я обязательно ввел абсолютный путь к svn (/ usr / bin / svn) в configuration.yml, но когда я перехожу к Администрирование-> Настройки-> Репозитории рядом с командой отображается красный восклицательный знак. Кроме того, когда я создаю новый проект и пытаюсь создать репозиторий, я получаю это сообщение об ошибке

Команда SCM недоступна. Пожалуйста, проверьте настройки в панели администрирования.

Теперь, если я вместо этого позволю пассажиру работать как собственный пользователь myusername svn работает. Хотя, насколько я знаю, это не то, как следует запускать.

Я думаю, что это где-то проблема с разрешением, но я просто не могу понять, где.

Я убедился, что мой самоподписанный сертификат не вызывает проблем, приняв его постоянно при запуске svn в качестве www-данных, например:

sudo -u www-data -H svn --username mysvnusername info https://svn.mydomain.com/myrepo

Насколько я понимаю, это работает правильно. Он пишет в /var/www/.subversion и когда я запускаю его снова, меня не спрашивают о сертификате.

Вот соответствующий вывод ps -ef:

UID      PID   PPID   C STIME TTY      TIME     CMD
root     16151     1  0 14:41 ?        00:00:00 /usr/sbin/apache2 -k start
root     16155 16151  0 14:41 ?        00:00:00 PassengerWatchdog
root     16158 16155  0 14:41 ?        00:00:02 PassengerHelperAgent
root     16160 16158  0 14:41 ?        00:00:00 Passenger spawn server
nobody   16165 16155  0 14:41 ?        00:00:00 PassengerLoggingAgent
www-data 16205     1  0 14:41 ?        00:00:04 Rack: /var/www/redmine
www-data 16391 16151  0 14:52 ?        00:00:01 /usr/sbin/apache2 -k start
www-data 16418 16151  0 14:53 ?        00:00:01 /usr/sbin/apache2 -k start
www-data 16427 16151  0 14:53 ?        00:00:01 /usr/sbin/apache2 -k start

Чтобы было понятно, проблема, похоже, не в фактическом подключении к серверу svn, а в том, что www-data запускает фактическую команду svn.

Где мне искать? Что я должен делать?

Я решил это на данный момент, добавив нового системного пользователя и указав каталог приложения redmine пользователю redmine:

sudo adduser --system redmine  
sudo chown -R redmine:www-data /var/www/redmine  

Теперь приложение Redmine запущено от имени пользователя redmine, а svn работает. Может быть, это тоже лучшее решение с точки зрения безопасности?