Linus Benedict Torvaldsの開発した分散型バージョン管理システムGitのサーバー周りのメモです.

目次

  1. 準備
  2. 共有リポジトリの作成
  3. シェルの変更
  4. 参考文献

準備

CentOS 8の例です.
予めgitを

dnf install git

でインストールしておきます.

共有リポジトリの作成

gitリポジトリを担うユーザーを作成し,鍵の設定も済ませます.
そのユーザーのアカウントでログインしたら,共有レポジトリを作成します.

mkdir /home/<user>/<repo>.git
cd /home/<user>/<repo>.git
git init --bare --shared=true

これでローカルから,git clone <user>@<ip>:<repo>.gitができるようになりました.

シェルの変更

共有リポジトリを持ったユーザーをgit専用とするには,そのシェルをgit-shellに変更します.
具体的な手順は以下の通りです.

まず,使用できるシェルの種類にgit-shellを加えるため,

which git-shell
vi /etc/shells

として,which git-shellで表示されたところを/etc/shellsに書き加えます.
通常は/usr/bin/git-shellです.

次に,シェルを変更するchshコマンドをインストールします.

dnf install util-linux-user

これらの準備の上で,

chsh <user>

とし,which git-shellで表示されたところ(通常は/usr/bin/git-shell)を指定すると,このユーザーはgit関連のコマンドしか使えなくなります.

参考文献

Gitの解説書です.
Gitのサイトは各国語版でこの書籍の電子版を無償提供しており,日本語版もあります.

  • Scott Chacon and Ben Straub (2014) “Pro Git” 2nd ed. Apress.