セットアップと設定
プロジェクトの取得と作成
基本的なスナップショット
ブランチとマージ
プロジェクトの共有と更新
検査と比較
パッチ
デバッグ
メール
外部システム
サーバー管理
- 2.18.1 → 2.47.0 変更なし
-
2.18.0
06/21/18
- 2.11.4 → 2.17.6 変更なし
-
2.10.5
09/22/17
-
2.9.5
07/30/17
- 2.1.4 → 2.8.6 変更なし
-
2.0.5
12/17/14
SYNOPSIS
chsh -s $(command -v git-shell) <user> git clone <user>@localhost:/path/to/repo.git
ssh <user>@localhost
DESCRIPTION
これは、制限されたGitアクセスを提供するためのSSHアカウント用のログインシェルです。プル/プッシュ機能を実装するサーバー側のGitコマンドの実行と、ユーザーのホームディレクトリにある git-shell-commands
という名前のサブディレクトリにあるカスタムコマンドの実行のみを許可します。
COMMANDS
git shell は、 -c
オプションの後に次のコマンドを受け入れます。
- git receive-pack <argument>
- git upload-pack <argument>
- git upload-archive <argument>
-
クライアントの git push、git fetch、または git archive --remote リクエストをサポートするために、対応するサーバー側のコマンドを呼び出します。
- cvs server
-
CVSサーバーを模倣します。git-cvsserver[1]を参照してください。
~/git-shell-commands
ディレクトリが存在する場合、git shell は、ユーザーのホームディレクトリから "git-shell-commands/<command> <arguments>
" を実行することにより、他のカスタムコマンドも処理します。
INTERACTIVE USE
デフォルトでは、上記のコマンドは -c
オプションでのみ実行できます。シェルはインタラクティブではありません。
~/git-shell-commands
ディレクトリが存在する場合、git shell はインタラクティブに (引数なしで) 実行することもできます。git-shell-commands
ディレクトリに help
コマンドが存在する場合、ユーザーに許可されたアクションの概要を提供するために実行されます。次に、"git> " プロンプトが表示され、git-shell-commands
ディレクトリからのコマンドを入力するか、接続を閉じるために exit
を入力できます。
一般的に、このモードは、ユーザーがアクセスできるリポジトリを一覧表示したり、リポジトリを作成、削除、または名前変更したり、リポジトリの説明と権限を変更したりできるようにするための管理インターフェースとして使用されます。
no-interactive-login
コマンドが存在する場合、それが実行され、インタラクティブシェルは中止されます。
EXAMPLES
インタラクティブログインを無効にし、代わりに挨拶を表示する場合
$ 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
git-cvsserver アクセスを有効にする場合 (一般的に、git-shell-commands
ディレクトリを作成するとインタラクティブログインが可能になるため、上記の no-interactive-login
の例を前提とする必要があります)
$ 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)、git-daemon[1]、contrib/git-shell-commands/README
GIT
git[1] スイートの一部