@PavLynne

Как ограничить доступ на изменения к папке с репозиторием git на windows server?

В общем суть такая. Имеем небольшую команду разработчиков, работает внутри достаточно крупного отдела. Решили не поднимать локальные копии GitLab и прочего такого, наши репозитории лежат на внутреннем сервере (Windows Server) в расшаренной папке.
К папке этой у всех есть право только на чтение, права на изменения файлов - только у членов команды. Но встал вопрос о работе вместе с другой командой. Им получается нужно будет выдать права на изменения файлов в этой папке, хочется узнать:
Есть ли возможность каким-то образом ограничить доступ на изменения в этой папке только через git запросы? Чтобы никто не мог зайти черех explorer и что нибудь испортить
  • Вопрос задан
  • 600 просмотров
Решения вопроса 1
@res2001
Developer, ex-admin
Есть альтернатива ssh доступу - git-демон.
Входит в комплект с гитом. Принимает запросы по сети, без непосредственного доступа к файлам для клиентов. Не универсальный как ssh, поэтому с его помощью нельзя запустить например консоль :-) Но в отличие от ssh никак незащищает канал передачи, но в локальной сети это не актуально, а в интернете - доступ к нему можно завернуть в ВПН.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@majstar_Zubr
C++, C#, gamedev
Вам нужно настроить ssh сервер с доступом по ключу, добавить пользователя git, который может только в директории репозитория что-то писать. Все будут подключаться к удалённому репозиторию через ssh.

Может стать непростой настройка доступа по ключу. Все зависит от того, откуда вы возьмете Openssh: из chocolate, cygwin, по-умолчанию или собственноручно собранный. Дополнительно, некоторые факторы зависят от того, из какого окружения будет использоваться ssh клиент.

Главное не забывайте, что права на запись в cygwin могут подпортить записи прав на файлы в формате, которые использует Windows (Файл - ПКМ - Свойства - Безопасность). Дополнительно, может не отрабатывать ssh-add (например, в случае, когда клиент из Windiws окружения, а сервер из cygwin), так что возможно придётся использовать приватные ключи, не защищённые мастер-паролем.

За исключением этих деталей, логика такая же, как в документации
Ответ написан
saboteur_kiev
@saboteur_kiev Куратор тега Git
software engineer
Через гит запросы никак - гит не умеет разграничивать доступ.
Именно для этого и есть инструменты для коде-ревью типа GitLab, gitolight, bitbucket, и др.

Ну еще можно конечно настроить просто рашаренную папку и работать с гитом по файловой шаре, тогда можно права доступа настраивать через NTFS права. Но это все равно делается не средствами самого гита.

В общем без коде-ревью, максимум что можно сделать, это пустить пользователей в принципе или не пустить.

На крайний случай, еще можно детально почитать про гит-хуки, и написать скрипты, где вы будете делать всю эту проверку и авторизацию по имени коммитера, или еще как-то. Это немного костыль.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы