Eu tenho um repositório git hospedado no meu servidor SunOS, que eu uso remotamente através do ssh
git clone ssh://[email protected]/path/to/git
Agora preciso adicionar mais usuários para poder acessar esse repositório, mas não sei como.
Adicionei um testUser ao ssh, mas não consigo limitar os privilégios de usuário para usar apenas o git.
testUser é capaz de navegar e navegar por todo o servidor.
Como posso criar usuários que só podem acessar o git remotamente, para clonar / puxar / empurrar etc ...
obrigado
fonte
Você basicamente tem duas opções.
Como o topdog mencionado, ao criar usuários no servidor, defina seu shell como git-shell ( entrada do livro aqui ). Isso permitirá que o usuário efetue login via SSH, mas em vez de executar um shell normal com todos os recursos (por exemplo, sh, bash, etc.), Ele executará o git-shell, que apenas fornece acesso à funcionalidade git.
Como alternativa, você pode disponibilizar seus repositórios por outro protocolo, como TCP (usando git-deamon ) ou HTTP / HTTPS. Eu recomendaria apenas esse cenário para acesso somente leitura.
Você mencionou que deseja dar suporte à funcionalidade "push" para seus usuários, portanto, você deve realmente optar pela opção 1.
fonte
você precisa mudar seu shell para git-shell, que lhes dará acesso apenas às funções git.
fonte
Outra maneira de fazer isso é limitar o acesso dos usuários no ssh.
( http://prefetch.net/blog/index.php/2006/09/05/limiting-access-to-openssh-directives/ )
O exemplo é apenas usando apenas um usuário, mas se os usuários estiverem no mesmo grupo, você poderá filtrá-los usando a diretiva de grupo. Algo como
fonte