Назад | Перейти на главную страницу

Как запретить ssh git push установить право собственности на файл?

У меня есть удаленный пустой репозиторий 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. Настройка группы может помочь.

Другой вариант - использовать что-то вроде гитоз для управления репозиторием.