Я устанавливаю Git-сервер в Ubuntu 14.04 LTS. Мне нужен сервер для поддержки протоколов SSH и HTTP.
До сих пор я следовал инструкциям в Git Book, чтобы заставить мой сервер поддерживать протокол SSH.
Для поддержки протокола HTTP, я зацепив Pushover в мой существующий веб - сервер. Поскольку веб-сервер работает от имени другого пользователя, он не сможет писать в основные репозитории, которые принадлежат пользователю "git". Поэтому я добавил пользователя своего веб-сервера в группу "git", выполнил команду chmod -R g+w /home/git
и заставил работать протокол HTTP. Однако, делая это, я случайно нарушил SSH-доступ к репозиториям, поскольку OpenSSH не позволяет домашнему каталогу пользователя быть доступным для записи в группе.
Есть пара вещей, о которых я подумал, чтобы решить эту проблему.
- Измените глобальные параметры конфигурации SSH, либо установив пользовательское расположение
AuthorizedKeysFile
либо установивStrictModes no
. Я не хочу делать ни одну из этих вещей, потому что изменения влияют на других моих не-git пользователей SSH. - Удалите привилегии записи группы из домашнего каталога пользователя git, а затем напишите сценарий, который вручную добавляет привилегии записи группы в новые репозитории. Это, вероятно, сработает, но это не выглядит как очень элегантное решение.
Любые предложения о том, как структурировать мою файловую систему так, чтобы она позволяла создавать git-репозитории с возможностью записи в группы и в то же время поддерживать SSH-доступ?