Такая вот ситуация.
Имеем репозиторий на сервере /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», то процесс пройдет нормально.