LINUX.ORG.RU

Не работает авто-hook от одного пользователя в репозиторий под другим пользователем

 , , ,


0

1

Приветствую.

Просьба помочь разобраться с корректностью настройки hook из одного репозитория в другой.

Есть пользователи: git:git и support:support.

У пользователя git задана домашняя папка /home/git/, в которой лежат подпапки вида: support.git, dev.git и т.п. Каждая подпапка содержит индекс репозитория соответствующих пользователей, support, например.

У пользователя support задана домашняя папка: /home/support/public_html/www/ В ней расположен git-репозиторий. В эту папку выкладываются изменения. Потом, в ручном режиме, этот репозиторий push-ится в папку /home/git/support/

Решил все автоматизировать - для репозитория support на sh написал hook, который должен сразу после коммита push-ить все изменения в индекс репозитория.

Но возникла проблема с правами доступа. Сейчас: support:support / 775(folder) / 664 (files) >>> /home/support/public_html/www/

git:git / 775(folder) / 664 (folder) / chmod g+s >>> /home/git/support.git/

$ id support uid=906(support) gid=906(support) группы=906(support),909(git)

При push-е из репозитория support в репозиторий support.git выдается сообщение вида:

$ git push /home/git/support.git/ master Counting objects: 5, done. Delta compression using up to 24 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 287 bytes | 0 bytes/s, done. Total 3 (delta 2), reused 0 (delta 0) remote: error: insufficient permission for adding an object to repository database ./objects remote: fatal: failed to write object error: unpack failed: unpack-objects abnormal exit To /home/git/support.git/ ! [remote rejected] master -> master (unpacker error) error: failed to push some refs to '/home/git/support.git/'

Если я делаю chgrp support -R /home/git/support.git/, то hook отрабатывает нормально.

Но тогда получается, что пользователь support имеет полный доступ к индексу репозитория.

Мне надо, чтобы на основном репозитории мог работать пользователь support:support, спокойно push-ил через hook в автоматическом режиме в индекс репозитория, который находится под управлением git:git.

Так вообще возможно или я не совсем корректно организовал работу репозиториев?


Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.