Setup and Config
Getting and Creating Projects
Basic Snapshotting
Branching and Merging
Sharing and Updating Projects
Inspection and Comparison
Patching
Debugging
External Systems
Server Admin
Guides
- gitattributes
- Command-line interface conventions
- Everyday Git
- Frequently Asked Questions (FAQ)
- Glossary
- Hooks
- gitignore
- gitmodules
- Revisions
- Submodules
- Tutorial
- Workflows
- All guides...
Administration
Plumbing Commands
- 2.18.1 → 2.53.0 no changes
-
2.18.0
2018-06-21
- 2.11.4 → 2.17.6 no changes
-
2.10.5
2017-09-22
-
2.9.5
2017-07-30
- 2.1.4 → 2.8.6 no changes
-
2.0.5
2014-12-17
SYNOPSIS
chsh -s $(command -v git-shell) <användare> git clone <användare>@localhost:/path/to/repo.gitssh <användare>@localhost
BESKRIVNING
Detta är ett inloggningsshell för SSH-konton för att ge begränsad Git-åtkomst. Det tillåter endast exekvering av serversida-Git-kommandon som implementerar hämta/sänd(pull/push)-funktionen, plus anpassade kommandon som finns i en underkatalog med namnet git-shell-commands i användarens hemkatalog.
KOMMANDON
git shell accepterar följande kommandon efter -c-alternativet:
- git receive-pack <argument>
- git upload-pack <argument>
- git upload-archive <argument>
-
Anropa motsvarande serversida-kommando för att stödja klientens begäran git push, git fetch eller git archive --remote.
- cvs server
-
Imitera en CVS-server. Se git-cvsserver[1].
Om en ~/git-shell-commands-katalog finns, kommer git shell även att hantera andra, anpassade kommandon genom att köra "git-shell-commands/<kommando> <arguments>" från användarens hemkatalog.
INTERAKTIV ANVÄNDNING
Som standard, kan kommandona ovan endast köras med alternativet -c; skalet är inte interaktivt.
Om en ~/git-shell-commands-katalog finns, kan git shell också köras interaktivt (utan argument). Om ett help-kommando finns i git-shell-commands-katalogen körs det för att ge användaren en översikt över tillåtna åtgärder. Sedan visas en "git>"-prompt där man kan ange vilket som helst av kommandona från git-shell-commands-katalogen, eller exit för att stänga anslutningen.
Generellt sett används det här läget som ett administrativt gränssnitt för att låta användare lista repon de har åtkomst till, skapa, ta bort eller byta namn på förvar, eller ändra förvars-beskrivningar och behörigheter.
Om ett no-interactive-login-kommando finns, körs det och det interaktiva skalet avbryts.
EXEMPEL
För att inaktivera interaktiva inloggningar, visa en hälsning istället:
$ 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' "Hej $USER! Du har autentiserat dig, men jag gör det inte." printf '%s\n' "ge interaktiv skalåtkomst." exit 128 EOF $ chmod +x $HOME/git-shell-commands/no-interactive-login
För att aktivera åtkomst till git-cvsserver (vilket generellt sett bör ha exemplet no-interactive-login ovan som en förutsättning, eftersom skapandet av katalogen git-shell-commands tillåter interaktiva inloggningar):
$ cat >$HOME/git-shell-commands/cvs <<\EOF if ! test $# = 1 && test "$1" = "server" then echo >&2 "git-cvsserver bara hantera \"server\"" exit 1 fi exec git cvsserver server EOF $ chmod +x $HOME/git-shell-commands/cvs
SE ÄVEN
ssh(1), git-daemon[1], contrib/git-shell-commands/README
GIT
En del av git[1]-sviten