DexterHD
@DexterHD
Software Engineer, Teamlead, CTO

Непонятки с правами GIT при выполнении хука?

Такая вот ситуация.

Имеем репозиторий на сервере /var/www/git/repository/testdeploy.git

Имеем следующий хук (post-update)
unset GIT_DIR
export GIT_WORK_TREE=/var/www/testdeploy
cd /var/www/testdeploy && git pull origin master



Имеем каталог /var/www/testdeploy где лежит скажем так развернутый проект (по факту просто рабочая копия репозитория)

Права у /var/www/testdeploy, /var/www/testdeploy/.git/
drwxrwxr-x  3 httpd httpd 4096 июня  10 22:08 testdeploy



Пользователь git добавлен в группу httpd

user@host:/var/www$ groups git
git : git httpd



Пробую с локальной машины сделать git push origin master


Получаю ошибку:
Counting objects: 5, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 309 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)

remote: error: cannot open .git/FETCH_HEAD: Permission denied

To http://git.initdev.lan/dexter/testdeploy.git
6817616..88d2fc2  master -> master



Как так то? Почему git запцущеный из под пользоваеля git не видит что он находится внутри группы httpd


Права у данного файла:
-rwxrwxr-x  1 httpd  httpd   105 июня  10 22:02 FETCH_HEAD



Причем интересная особенность, если я этот хук выполню из консоли на удаленной машине из под пользователя «git», то процесс пройдет нормально.
  • Вопрос задан
  • 4727 просмотров
Пригласить эксперта
Ответы на вопрос 2
DexterHD
@DexterHD Автор вопроса
Software Engineer, Teamlead, CTO
Под другим юзером делаю со своего компа по удаленке. В том то и проблема я проверял, до хука доходит.
Проверял путем элементарного прописывания echo «Что-нибудь» в файле хука (post-update)
git обновляет ветку в репозитории /var/www/git/repository/testdeploy.git после чего выолняет хук и вываливается на комманде
git pull origin master

Если просписать владельцем git для каталога /var/www/testdeploy то все Ок. Складывается ощущение что при выполнении хука
git не понимает что он находится в группе httpd.
Ответ написан
radarlog
@radarlog
если используется gitolite (судя по путям, предполагаю), то надо смотреть параметр $REPO_UMASK в его конфиге (должно быть 0022)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы