diff options
Diffstat (limited to 'third_party/git/Documentation/git-shell.txt')
-rw-r--r-- | third_party/git/Documentation/git-shell.txt | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/third_party/git/Documentation/git-shell.txt b/third_party/git/Documentation/git-shell.txt deleted file mode 100644 index 11361f33e939..000000000000 --- a/third_party/git/Documentation/git-shell.txt +++ /dev/null @@ -1,106 +0,0 @@ -git-shell(1) -============ - -NAME ----- -git-shell - Restricted login shell for Git-only SSH access - - -SYNOPSIS --------- -[verse] -'chsh' -s $(command -v git-shell) <user> -'git clone' <user>`@localhost:/path/to/repo.git` -'ssh' <user>`@localhost` - -DESCRIPTION ------------ - -This is a login shell for SSH accounts to provide restricted Git access. -It permits execution only of server-side Git commands implementing the -pull/push functionality, plus custom commands present in a subdirectory -named `git-shell-commands` in the user's home directory. - -COMMANDS --------- - -'git shell' accepts the following commands after the `-c` option: - -'git receive-pack <argument>':: -'git upload-pack <argument>':: -'git upload-archive <argument>':: - Call the corresponding server-side command to support - the client's 'git push', 'git fetch', or 'git archive --remote' - request. -'cvs server':: - Imitate a CVS server. See linkgit: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. - -INTERACTIVE USE ---------------- - -By default, the commands above can be executed only with the `-c` -option; the shell is not interactive. - -If a `~/git-shell-commands` directory is present, 'git shell' -can also be run interactively (with no arguments). If a `help` -command is present in the `git-shell-commands` directory, it is -run to provide the user with an overview of allowed actions. Then a -"git> " prompt is presented at which one can enter any of the -commands from the `git-shell-commands` directory, or `exit` to close -the connection. - -Generally this mode is used as an administrative interface to allow -users to list repositories they have access to, create, delete, or -rename repositories, or change repository descriptions and -permissions. - -If a `no-interactive-login` command exists, then it is run and the -interactive shell is aborted. - -EXAMPLES --------- - -To disable interactive logins, displaying a greeting instead: - ----------------- -$ 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 ----------------- - -To enable git-cvsserver access (which should generally have the -`no-interactive-login` example above as a prerequisite, as creating -the git-shell-commands directory allows interactive logins): - ----------------- -$ 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 ----------------- - -SEE ALSO --------- -ssh(1), -linkgit:git-daemon[1], -contrib/git-shell-commands/README - -GIT ---- -Part of the linkgit:git[1] suite |