Einrichtung und Konfiguration
Projekte holen und erstellen
Grundlegende Snapshots
Branching und Merging
Projekte teilen und aktualisieren
Inspektion und Vergleich
Patching
Debugging
Externe Systeme
Server-Administration
Anleitungen
- gitattributes
- Konventionen der Kommandozeile
- Tägliches Git
- Häufig gestellte Fragen (FAQ)
- Glossar
- Hooks
- gitignore
- gitmodules
- Revisionen
- Submodule
- Tutorial
- Workflows
- Alle Anleitungen...
Administration
Plumbing-Befehle
- 2.18.1 → 2.52.0 keine Änderungen
-
2.18.0
2018-06-21
- 2.11.4 → 2.17.6 keine Änderungen
-
2.10.5
2017-09-22
-
2.9.5
2017-07-30
- 2.1.4 → 2.8.6 keine Änderungen
-
2.0.5
2014-12-17
SYNOPSIS
chsh -s $(command -v git-shell) <user> git clone <user>@localhost:/path/to/repo.gitssh <user>@localhost
BESCHREIBUNG
Dies ist eine Login-Shell für SSH-Konten, um eingeschränkten Git-Zugriff zu ermöglichen. Sie erlaubt nur die Ausführung von serverseitigen Git-Befehlen, die die Pull/Push-Funktionalität implementieren, sowie benutzerdefinierte Befehle, die in einem Unterverzeichnis namens git-shell-commands im Home-Verzeichnis des Benutzers vorhanden sind.
BEFEHLE
git shell akzeptiert die folgenden Befehle nach der Option -c
- git receive-pack <argument>
- git upload-pack <argument>
- git upload-archive <argument>
-
Ruft den entsprechenden serverseitigen Befehl auf, um die git push, git fetch oder git archive --remote Anforderung des Clients zu unterstützen.
- cvs server
-
Imitiert einen CVS-Server. Siehe git-cvsserver[1].
Wenn ein Verzeichnis ~/git-shell-commands vorhanden ist, verarbeitet git shell auch andere, benutzerdefinierte Befehle, indem es "git-shell-commands/<befehl> <argumente>" aus dem Home-Verzeichnis des Benutzers ausführt.
INTERAKTIVE NUTZUNG
Standardmäßig können die oben genannten Befehle nur mit der Option -c ausgeführt werden; die Shell ist nicht interaktiv.
Wenn ein Verzeichnis ~/git-shell-commands vorhanden ist, kann git shell auch interaktiv (ohne Argumente) ausgeführt werden. Wenn ein help Befehl im Verzeichnis git-shell-commands vorhanden ist, wird dieser ausgeführt, um dem Benutzer einen Überblick über zulässige Aktionen zu geben. Dann wird eine "git> " Eingabeaufforderung angezeigt, an der man einen der Befehle aus dem Verzeichnis git-shell-commands oder exit eingeben kann, um die Verbindung zu schließen.
Im Allgemeinen wird dieser Modus als administrative Schnittstelle verwendet, um Benutzern zu erlauben, Repositories aufzulisten, auf die sie Zugriff haben, Repositories zu erstellen, zu löschen oder umzubenennen oder Repository-Beschreibungen und Berechtigungen zu ändern.
Wenn ein Befehl no-interactive-login existiert, wird dieser ausgeführt und die interaktive Shell wird abgebrochen.
BEISPIELE
Um interaktive Logins zu deaktivieren und stattdessen eine Begrüßung anzuzeigen
$ 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
Um den Zugriff auf git-cvsserver zu ermöglichen (was im Allgemeinen das obige Beispiel no-interactive-login als Voraussetzung haben sollte, da das Erstellen des Verzeichnisses git-shell-commands interaktive Logins ermöglicht)
$ 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
SIEHE AUCH
ssh(1), git-daemon[1], contrib/git-shell-commands/README
GIT
Teil der git[1] Suite