2013-02-15 3 views
1

Настройка сервера git, где несколько пользователей смогут совершать изменения.Git - разрешение на запись

Многие из документации для этого предлагают предоставить им доступ на запись в репозиторий и использовать SSH для контроля доступа. например http://git-scm.com/book/ch4-2.html предлагает это даже для сотен пользователей. Гитоз, похоже, продолжает использовать тот же подход, позволяя SSH записывать доступ к репозиторию.

Так что мой вопрос:

Что остановить кого-то ssh server "rm -r /home/git/the_repository"?

Действительно ли это так, что при обычной установке люди с правами на передачу в общий репозиторий получают достаточный доступ к файловой системе для его удаления?

ответ

1

Современный способ добиться того, чего вы хотите достичь, - это gitolite, который позволяет вам как администратору репо определять относительно мелкозернистые правила доступа.

gitolite идентифицирует пользователей по ключам ssh, поэтому пользователям даже не нужно иметь доступ к серверу на сервере.

gitolite documentation по моему опыту неплохо.

0

Вы не должны разрешать пользователям shell доступ к машине репозитория.

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

Однако это не помешает им совершать другие неприятные вещи, такие как нажатие пустых ссылок на каждую из ваших ветвей. Если вы не доверяете людям, которые будут использовать центральный репозиторий, вам нужна более тонкая система разрешений.

Я бы порекомендовал Gerrit для этой цели. Даже если вы не используете его для проверки кода, он по-прежнему предоставляет систему управления и разрешений вокруг git.

Другой вариант заключается в том, чтобы делать push over HTTP вместо SSH; серверы HTTP предоставляют дополнительные ограничения, которые вы можете установить, чтобы избежать вреда.

Смежные вопросы