Français ▾ Topics ▾ Latest version ▾ git-shell last updated in 2.18.0

NOM

git-shell - Shell de login restreint pour un accès SSH vers Git seulement

SYNOPSIS

chsh -s $(command -v git-shell) <utilisateur>
git clone <utilisateur>@localhost:/chemin/vers/repo.git
ssh <utilisateur>@localhost

DESCRIPTION

Il s’agit d’un shell de connexion pour les comptes SSH pour fournir un accès Git restreint. Il permet l’exécution limitée des commandes Git côté serveur mettant en œuvre la fonctionnalité pull/push, plus les commandes personnalisées présentes dans un sous-répertoire nommé git-shell-commands dans le répertoire de l’utilisateur.

COMMANDES

git shell accepte les commandes suivantes après l’option -c :

git receive-pack <argument>
git upload-pack <argument>
git upload-archive <argument>

Appeler la commande correspondante côté serveur pour gérer la requête git push , git fetch, ou git archive --remote du client.

cvs server

Imite un serveur CVS. Voir git-cvsserver[1].

Si un répertoire ~/git-shell-commands est présent, git shell gérera également d’autres commandes personnalisées en exécutant "git-shell-commands/<commande>" depuis le répertoire de l’utilisateur.

UTILISATION INTERACTIVE

Par défaut, les commandes ci-dessus ne peuvent être exécutées qu’avec l’option -c ; le shell n’est pas interactif.

Si un répertoire ~/git-shell-commands est présent, git shell peut également être exécuté de manière interactive (sans argument). Si une commande help est présente dans le répertoire git-shell-commands, elle est exécutée pour fournir à l’utilisateur un aperçu des actions autorisées. Ensuite, une invite "git>" est présentée, à laquelle on peut entrer l’une des commandes du répertoire git-shell-commands, ou sortir via exit pour fermer la connexion.

Généralement, ce mode est utilisé comme interface d’administration pour permettre aux utilisateurs de lister les dépôts auxquels ils ont accès, de créer, de supprimer ou de renommer les dépôts, ou de modifier les descriptions et les autorisations des dépôts.

Si une commande no-interactive-login existe, alors elle est exécutée et le shell interactif est terminé.

EXEMPLES

Pour désactiver les connexions interactives, afficher un accueil plutôt :

$ chsh -s /usr/bin/git-shell
$ mkdir $HOME/git-shell-commands
$ cat >$HOME/git-shell-commands/no-interactive-login <<\EOF
#!/bin/sh
printf '%s\n' "Hi $USER! You've successfully authenticated, but I do not"
printf '%s\n' "provide interactive shell access."
exit 128
EOF
$ chmod +x $HOME/git-shell-commands/no-interactive-login

Pour permettre l’accès git-cvsserver (qui devrait généralement avoir l’exemple no-interactive-login ci-dessus comme condition préalable, car créer le répertoire git-shell-commands permet des connexions interactives) :

$ cat >$HOME/git-shell-commands/cvs <<\EOF
if ! test $# = 1 && test "$1" = "server"
then
	echo >&2 "git-cvsserver only handles \"server\""
	exit 1
fi
exec git cvsserver server
EOF
$ chmod +x $HOME/git-shell-commands/cvs

VOIR AUSSI

ssh(1), git-daemon[1], contrib/git-shell-commands/README

GIT

Fait partie de la suite git[1]

TRADUCTION

Cette page de manuel a été traduite par Jean-Noël Avila <jn.avila AT free DOT fr> et les membres du projet git-manpages-l10n. Veuillez signaler toute erreur de traduction par un rapport de bogue sur le site https://github.com/jnavila/git-manpages-l10n .