git-shellでGitだけ使用できるユーザーを作る
Linus Benedict Torvaldsの開発した分散型バージョン管理システムGitのサーバー周りのメモです.
目次
準備
CentOS 8の例です.
予めgitを
dnf install git |
でインストールしておきます.
共有リポジトリの作成
gitリポジトリを担うユーザーを作成し,鍵の設定も済ませます.
そのユーザーのアカウントでログインしたら,共有レポジトリを作成します.
mkdir /home/<user>/<repo>.git |
これでローカルから,git clone <user>@<ip>:<repo>.git
ができるようになりました.
シェルの変更
共有リポジトリを持ったユーザーをgit専用とするには,そのシェルをgit-shell
に変更します.
具体的な手順は以下の通りです.
まず,使用できるシェルの種類にgit-shell
を加えるため,
which git-shell |
として,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.