Как предотвратить 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 для управления хранилищем.