Gitolite и файловые права - PullRequest
2 голосов
/ 29 марта 2012

Я установил репозиторий Gitolite на сервере Ubuntu, который предназначен для разработчиков клонов / push-проектов, над которыми мы будем работать. У меня проблема с крюком пост-получения, который у меня есть в репо. У меня есть ловушка после получения в определенном репо, проверяющая определенный каталог на сервере, в моем случае это / home / user / www / projects /. Проблема в том, что когда администратор отправляет репозиторий (git push origin), ловушка успешно извлекает проект в указанный каталог и изменяет разрешения для проверяемого каталога (проекта). Однако, если обычный пользователь подталкивает к репо, то хуки проверяют проект без изменений, не меняя разрешений. Я уже проверил umask на сервере 0002, и это не должно быть проблемой здесь. Я удален и переустановлен Gitolite, но все еще с той же проблемой.

1 Ответ

4 голосов
/ 29 марта 2012

Как объяснено в " Git CHMOD post-receive hook ", здесь может иметь значение разрешение, связанное с самим репозиторием Git.

В Gitolite это разрешение настраивается в .gitolite.rc как $REPO_UMASK $UMASK (Это '$UMASK' с GitoliteV3 или'g3 ' сейчас).
Проверьте, не влияет ли это на вашу проблему с оформлением заказа:

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

Правильный способ справиться с этим - присвоить этой переменной значение, подобное 0027 (обратите внимание на синтаксис: требуется ведущий 0), а затем заставить пользователя запустить веб-сервер (apache, www-data, что угодно) член группы 'git'.

Если вы уже установили gitolite, то существующие файлы придется исправить вручную (для umask или 0027, это будет chmod -R g+rX).
Это связано с тем, что umask влияет только на разрешения для вновь создаваемых файлов, но не для существующих.

...