J'ai un référentiel git hébergé sur mon serveur SunOS, que j'utilise à distance via ssh
git clone ssh://[email protected]/path/to/git
Maintenant, je dois ajouter plus d'utilisateurs pour pouvoir accéder à ce référentiel, mais je ne sais pas comment.
J'ai ajouté un testUser à ssh, mais je n'arrive pas à limiter les privilèges utilisateur pour n'utiliser que git.
testUser est capable de parcourir et de parcourir l'ensemble du serveur.
Comment puis-je créer des utilisateurs qui ne peuvent accéder à git qu'à distance, pour cloner / tirer / pousser etc ...
Merci
la source
Vous avez essentiellement deux options.
Comme indiqué par topdog, lorsque vous créez des utilisateurs sur le serveur, définissez leur shell sur git-shell ( entrée de livre ici ). Cela permettra à l'utilisateur de se connecter via SSH, mais au lieu d'exécuter un shell normal et complet (par exemple sh, bash, etc.), il s'exécutera, git-shell, qui ne donne accès qu'à la fonctionnalité git.
Alternativement, vous pouvez rendre vos référentiels disponibles via un autre protocole, tel que TCP (en utilisant git-deamon ) ou HTTP / HTTPS. Je ne recommanderais cependant qu'un tel scénario pour un accès en lecture seule.
Vous mentionnez vouloir prendre en charge la fonctionnalité «push» pour vos utilisateurs, vous devriez donc vraiment choisir l'option # 1.
la source
vous devez changer leur shell en git-shell, qui ne leur donnera accès qu'aux fonctions git.
la source
Une autre façon de le faire est de limiter l'accès des utilisateurs dans ssh.
( http://prefetch.net/blog/index.php/2006/09/05/limiting-access-to-openssh-directives/ )
L'exemple est simplement en utilisant un seul utilisateur, mais si les utilisateurs sont sur le même groupe, vous pouvez les filtrer en utilisant la directive group. Quelque chose comme
la source