У меня есть удаленный пустой репозиторий Git на сервере Ubuntu, где файлы принадлежат пользователю. my_project
и группа my_project
, с соответствующими разрешениями. Все коммитеры сами входят в группу my_project
.
Когда кто-то совершает коммит, нажмите с любого ноутбука Ubuntu с пользователем my_user
к серверу через SSH некоторые файлы в удаленном репозитории создаются (обновляются?), поэтому теперь они принадлежат пользователю и группе my_user
.
Конечно, когда кто-то еще хочет зафиксировать, он теперь не может этого сделать, потому что у него нет прав на запись. Я мог бы установить разрешение 777, но это не лучший вариант.
Есть ли способ решить эту проблему, сохранив при этом ограниченные права на запись?
Могут ли вам помочь биты SUID и SGID? Я использую аналогичный механизм, чтобы позволить членам группы bzr фиксировать файлы в центральном репозитории базара и при этом сохранять доступные разрешения.
drwsrwsr-x 3 bzr bzr 4.0K 2010-04-15 17:58 bzr
установить с sudo chmod ug+s /home/bzr
/ etc / group содержит bzr:x:1012:bzr,tom,<and a whole bunch of other usernames>
Похоже, это хорошо работает для нас, позволяя пользователям группы bzr фиксировать файлы в центральном репозитории.
Режим настройки 777, вероятно, не идеален по очевидным причинам безопасности.
Если я упустил суть, упс.
Проверьте core.sharedRepository
переменная config в git config --help
. Настройка группы может помочь.
Другой вариант - использовать что-то вроде гитоз для управления репозиторием.