Как получить github-подобное поведение для доступа по ssh на моем git-сервере - PullRequest
3 голосов
/ 11 декабря 2011

Предположим, у нас есть два отдельных пользователя github: Foo и Bar. Они владеют репозиториями Quux и Waldo соответственно. Таким образом, Foo может нажать на Foo / Quux и не может нажать на Bar / Waldo. Напротив право на Бар. Затем Фу клонировал свой репозиторий Quux:

$ git clone ...
...
$ git remote -v
origin  git@github.com:Foo/Quux.git (fetch)
origin  git@github.com:Foo/Quux.git (push)

Кажется, что у Foo есть доступ на запись в репозиторий Foo / Quux через git пользователя, у которого нет прав на запись в репозиторий Bar / Waldo через того же пользователя. Есть ли способ, которым я могу достичь того же поведения на моем сервере git? Должен ли я написать собственный sshd демон для этой цели?

Ответы [ 3 ]

7 голосов
/ 11 декабря 2011

Вы можете использовать Gitolite , чтобы получить детальный контроль доступа к своим хранилищам git по SSH, где каждый пользователь идентифицируется своим ключом SSH.

В отличие от уже упомянутого гитоза, Gitolite все еще поддерживается и поддерживает более мелкозернистый контроль доступа к хранилищу.

Если вам нужна дополнительная функциональность GitHub для внутреннего использования, вам следует взглянуть на GitLab и, конечно, GitHub Enterprise .

1 голос
/ 11 декабря 2011

Вы можете использовать gitosis для точного контроля доступа к нескольким репозиториям, которые совместно используются командой.

0 голосов
/ 11 декабря 2011

Если репозитории находятся на одном и том же сервере, невозможно выделить двух пользователей с одинаковым именем пользователя.Даже пользовательский sshd не будет работать, потому что он будет видеть входящее соединение только для пользователя "git", а не оригинальное имя пользователя.

Мы управляем нашими разрешениями с помощью имен пользователей или групп.Таким образом, некоторые пользователи принадлежат к группе «разработчиков», которая может передавать в определенные репозитории, а другие принадлежат «пользователям», которые могут передавать в другие репозитории.Каждый пользователь входит в систему со своим именем пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...