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

У меня есть удаленный пустой Git-репозиторий на сервере Ubuntu, где файлы принадлежат пользователю my_project и группа my_project, с разрешениями, установленными соответственно. Все коммитеры сами в группе my_project,

Когда кто-нибудь совершает коммит, нажмите с любого ноутбука Ubuntu с пользователем my_user на сервер через SSH, некоторые файлы в удаленном хранилище создаются (обновляются?), поэтому они теперь принадлежат пользователю и группе my_user,

Конечно, когда кто-то еще хочет сделать коммит, он теперь не может этого сделать, потому что у него нет прав на запись. Я мог бы установить разрешение на 777, но это не лучший вариант.

Можно ли как-то решить эту проблему, сохранив ограниченные права на запись?

2 ответа

Решение

Помогут ли вам биты SUID и SGID? Я использую аналогичный механизм, чтобы члены группы bzr могли фиксировать файлы в центральном репозитории Bazaar и по-прежнему сохранять доступные разрешения.

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 переменная конфигурации в git config --help, Установка его в группу может помочь.

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

Другие вопросы по тегам