Разрешения Git, Gitolite, Deploy и Linux - PullRequest
1 голос
/ 20 февраля 2012

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

Лучший способ, с помощью которого я нашел шаблоны, - это установить git поверх gitolite и создать ловушку для автоматической проверки шаблонов при обновлении в нужных папках.

Ну, все в настройках работает и работает нормально, но у меня есть секретный вопрос.

Шаблоны используются небольшим приложением, работающим с пользователем с именем runtime, с группой времени выполнения. Gitolite использует другого пользователя / группу, обычно git: git, для управления репозиториями.

В хуке я должен извлекать файлы в папку пользователя времени выполнения, и, очевидно, это не работает.

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

Я не эксперт по безопасности, но знаю, что здесь полно :)

Большое спасибо, Дэвид.

1 Ответ

0 голосов
/ 20 февраля 2012

Мне кажется, что вы на самом деле не хотите запускать извлечение файлов из ловушки, вы просто хотите, чтобы ловушка вызывала их. Оформить заказ действительно хочет, чтобы он был runtime пользователем?

Я могу придумать пару способов сделать это, но ни один из них не звучит потрясающе:

  1. Установите ssh-ключ без пароля для пользователя git, чтобы он мог запускать ssh runtime@localhost ~runtime/doUpdates.sh, а указанный скрипт выполняет fetch и checkout.
  2. Установка ограничена sudo для пользователя git, поэтому он может запускать sudo -u runtime ~runtime/doUpdates.sh.
  3. Настройка ограничена sudo для пользователя git, поэтому он может chown runtime:runtime -R получить результат своих действий по проверке.

И еще пару худших. :)

...