Gitosis и www-данные

В настоящее время я создаю сервер Ubuntu (10.0.4 LTS) на VPS для размещения веб-сайта на основе WordPress.

У меня установлен gitosis для размещения удаленного репозитория, и я хотел бы добавить плагин к хуку post receive для обновления темы WordPress, когда я git push.

Я немного запутался с пользователями и разрешениями. Когда мы запускаем git pull, файлы в /var/www будут принадлежать пользователю git. В идеале я хотел бы, чтобы все файлы в /var/www принадлежали одному и тому же пользователю, так как я думаю, что это будет безопаснее?

В настоящее время у меня есть папка /var/www, принадлежащая моему пользователю www-data, после некоторого чтения я понял, что это не лучший способ сделать. Мне нужна помощь в разработке наилучшего плана действий для этого?


person simon    schedule 29.03.2012    source источник


Ответы (1)


Из комментариев:

Я бы не стал использовать gitosis для такого тонкого контроля:

  • gitosis устарел и не перемещается с 2009 года (хотя некоторые форки все еще немного активны).
  • Этот комментарий и этот вопрос показывает, что большинство функций проще реализовать с помощью Гитолит.

Итак, с Гитолитом:

umask использование репозитория Git, проверенного пользователем git в среде gitolite, будет описано в разделе документации наиболее часто используемые/изменяемые переменные

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

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

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

Оттуда вы можете выполнить установить gitolite под apache.

person VonC    schedule 29.03.2012
comment
Извините, вы предлагаете мне использовать гитолит, а не гитоз. Я бы предпочел придерживаться gitosis, поскольку я использовал его раньше. - person simon; 29.03.2012
comment
@simon: извини, я не видел gitosis. да. используйте гитолит. Гитоз безнадежно устарел. См. комментарии stackoverflow.com/a/7592421/6309 или см. этот вопрос stackoverflow.com/questions/7591958/ - person VonC; 29.03.2012
comment
У меня возникли проблемы с запуском Gitolite. Я создал пользователя с именем git, а затем клонировал Gitolite из github, проверил ветку g3. Я запустил установку, которая создала 2 репозитория. Я мог бы клонировать репозиторий администратора из git@server:repositories/gitolite-admin.git/, но после прочтения этого stackoverflow.com/questions/5233058/ Я думаю, это произошло потому, что у пользователя git был доступ по ssh. Теперь я удалил папку /home/git/.ssh/ и не могу клонировать из git@server:repositories/gitolite-admin.git/ или git@server:gitolite-admin.git - person simon; 30.03.2012
comment
@simon Вопрос, который вы упомянули (и на который я ответил), не касается удаления ssh. ssh очень полезен для Gitolite. Речь идет об неиспользовании полного локального пути репозитория: git@server:repositories/gitolite-admin.git это плохо. git@server:gitolite-admin лучше: нет 'repositories'. - person VonC; 30.03.2012
comment
Хорошо, извините, я, должно быть, неправильно понял, так что я должен добавить открытый ключ обратно в /home/git/.ssh/? - person simon; 30.03.2012
comment
Я добавил открытый ключ обратно в author_keys, и когда я запускаю git clone git@server:gitolite-admin на своем локальном компьютере, я получаю фатальный результат: «gitolite-admin» не является фатальным репозиторием git: удаленный конец завис неожиданно? - person simon; 30.03.2012
comment
@simon ты установил gitolite, как я это сделал в моем сценарии установки gitolite? (github.com/VonC/compileEverything/blob/master/gitolite/< /а>) - person VonC; 30.03.2012