Português (Brasil) ▾
Localized versions of git-shell manual
  1. English
  2. Português (Brasil)
  3. українська мова
  4. 简体中文
Topics ▾ Latest version ▾ git-shell last updated in 2.18.0
Changes in the git-shell manual
  1. 2.18.1 → 2.52.0 no changes
  2. 2.18.0 2018年06月21日
  3. 2.11.4 → 2.17.6 no changes
  4. 2.10.5 2017年09月22日
  5. 2.9.5 2017年07月30日
  6. 2.1.4 → 2.8.6 no changes
  7. 2.0.5 2014年12月17日

Check your version of git by running

git --version

NOME

git-shell - Shell de login restrito para acesso SSH, apenas para o Git

RESUMO

chsh -s $(command -v git-shell) <usuário>
git clone <usuário>@localhost:/path/to/repo.git
ssh <usuário>@localhost

DESCRIÇÃO

Esse é um shell de login para contas SSH para fornecer acesso restrito ao Git. Ele permite a execução apenas de comandos Git do lado do servidor que implementam a funcionalidade pull/push, além de comandos personalizados presentes num subdiretório chamado git-shell-commands no diretório inicial do usuário.

COMANDOS

git shell aceita os seguintes comandos após a opção -c:

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

Chame o comando correspondente do lado do servidor para apoiar a solicitação do comando git push, git fetch ou git archive --remote do cliente.

cvs server

Imita um servidor CVS. Consulte git-cvsserver[1].

If a ~/git-shell-commands directory is present, git shell will also handle other, custom commands by running "git-shell-commands/<command> <arguments>" from the user’s home directory.

USO INTERATIVO

É predefinido que os comandos acima possam ser executados apenas com a opção -c; o shell não é interativo.

Se um diretório ~/git-shell-commands estiver presente, o comando git shell também poderá ser executado interativamente (sem argumentos). Se um comando help estiver presente no diretório git-shell-commands, ele será executado para fornecer ao usuário uma visão geral das ações permitidas. Em seguida, é apresentado um prompt "git> " onde é possível digitar qualquer um dos comandos do diretório git-shell-commands ou exit para encerrar a conexão.

Em geral, este modo é utilizado como uma interface administrativa para permitir que os usuários listem os repositórios dos quais eles têm acesso para, criar, excluir ou renomear os repositórios ou alterar as descrições e permissões do mesmo.

Caso um comando no-interactive-login existir, ele será executado e o shell interativo será abortado.

EXEMPLOS

Para desativar os logins interativos, exibindo uma saudação:

$ 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' "Olá $USER! Você se autenticou com sucesso, porém eu não"
printf '%s\n' "forneço um acesso interativo ao shell."
exit 128
EOF
$ chmod +x $HOME/git-shell-commands/no-interactive-login

Para ativar o acesso ao git-cvsserver (que geralmente deve ter o exemplo no-interactive-login acima como pré-requisito, pois a criação do diretório git-shell-commands permite logins interativos):

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

VEJA TAMBÉM

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

GIT

Parte do conjunto git[1]

AltStyle によって変換されたページ (->オリジナル) /