Приветствую.
Просьба помочь разобраться с корректностью настройки 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.
Так вообще возможно или я не совсем корректно организовал работу репозиториев?