Позвольте пользователю получать доступ к единственному репозиторию Мерзавца

Рассмотрите сервер, который размещает несколько репозиториев Мерзавца:

$ ls -l /opt/git/
drwxrwxr-x 7 ubuntu root   4096 Jan  2  2014 george.git
drwxrwxr-x 7 ubuntu root   4096 Dec 29  2013 john.git
drwxrwsr-x 7 ubuntu root   4096 Jul  4  2013 paul.git
drwxrwsr-x 7 ubuntu root   4096 Jun 30  2013 ringo.git

До сих пор у всех разработчиков был доступ ко всему Мерзавцу repos через SSH. Я теперь добавляю dev, у кого должен только быть доступ к john.git repo. Я создал пользователя Linux yoko но я не уверен, как я должен позволить yoko получите доступ /opt/git/john.git каталог самым безопасным способом, не позволяя ему получить доступ к другим каталогам в /opt/git/.

Каков канонический способ ограничить доступ как таковой?

Мой наклон состоит в том, чтобы сделать john.git как группа foobar и добавьте ту группу к пользователю yokoгруппы. Однако, что происходит, если я позже должен добавить другого пользователя, который мог бы получить доступ к двум repos? Например, я мог бы хотеть добавить пользователя cynthia с доступом к обоим john.git и к paul.git. У меня должна быть отдельная группа для каждого Мерзавца repo? Я видел что, становясь громоздким очень быстро

Обратите внимание, что у этих пользователей должен быть доступ ни к чему кроме их собственного /home/user/ каталоги и дополнительно Мерзавцу repo (s), что им разрешают. Если существует путь к символьной ссылке т.е. /home/yoko/john.git кому: /opt/git/john.git способом это предотвращает доступ к остальной части /opt/git/ это было бы лучшим, однако я, может казаться, не настраиваю систему как таковую.

Сервер выполняет Сервер Ubuntu 12.04, но я мог возможно обновить его к 14,04, если существует потребность. Пользователи соединяются через SSH, использующий ключи RSA, никакой пароль. Они будут работать git pull и git push на сервере, ничто больше.

1
задан 7 August 2014 в 15:52
1 ответ

Для небольшого количества репозиториев групповой подход работает просто отлично. Да, каждому репо потенциально нужна своя группа, и оно становится громоздким, если у вас больше репозитория. Как упоминалось в комментариях @AlexeyTen, если у вас больше репозиториев, или вам нужен более "высокоуровневый" интерфейс управления, вам следует обратить внимание на менеджер репо, такой как gitolite или gitlab. Gitolite управляется через текстовые файлы в git-репо (конфигурационные файлы и SSH-ключи фиксируются для специального git-репо и нажимаются, и всё настраивается). С другой стороны, Gitlab - это веб-приложение "всё-в-одном", похожее по концепции на самохостинг Github. Если вам не нужны все колокольчики и свистки, гитолит почти наверняка отлично справится со своей задачей

.
1
ответ дан 4 December 2019 в 00:20

Теги

Похожие вопросы