У меня есть git-репозиторий, размещенный на моем сервере SunOS, который я использую удаленно через ssh
git clone ssh://myUser@mydomain.com/path/to/git
Теперь мне нужно добавить больше пользователей, чтобы иметь доступ к этому хранилищу, но не знаю, как.
Я добавил одного testUser в ssh, но я не могу ограничить привилегии пользователей только использованием git.
testUser может пройти через ssh и просмотреть весь сервер.
Как я могу создать пользователей, которые могут получать доступ к git только удаленно, клонировать / тянуть / толкать и т.д.?
Благодарность
источник
У вас в основном есть два варианта.
Как уже упоминалось в topdog, когда вы создаете пользователей на сервере, установите для их оболочки git-shell ( запись книги здесь ). Это позволит пользователю войти в систему через SSH, но вместо запуска обычной полнофункциональной оболочки (например, sh, bash и т. Д.) Будет запущена git-shell, которая предоставляет доступ только к функциональности git.
Кроме того, вы можете сделать свои репозитории доступными по другому протоколу, например, TCP (используя git-deamon ) или HTTP / HTTPS. Я бы порекомендовал такой сценарий только для доступа только для чтения.
Вы упомянули о желании поддерживать функциональность «push» для своих пользователей, поэтому вам действительно стоит воспользоваться вариантом № 1.
источник
вам нужно изменить их оболочку на git-shell, которая даст им доступ только к функциям git.
источник
Другой способ сделать это - ограничить доступ пользователей внутри ssh.
( http://prefetch.net/blog/index.php/2006/09/05/limiting-access-to-openssh-directives/ )
Примером является использование только одного пользователя, но если пользователи находятся в одной группе, вы можете отфильтровать их с помощью директивы group. Что-то вроде
источник