gitoliteのGitリポジトリ管理権限を使用します

免責事項:この記事はブロガーオリジナル記事です、続くBY-SAのCC 4.0を著作権契約、複製、元のソースのリンクと、この文を添付してください。
このリンク: https://blog.csdn.net/mdykj33/article/details/102777289

どのようにGitの管理権限、それ?GIT SVN自身が管理するのにgitoliteを使用して、同様の管理者権限を提供していません。CentOS7環境下で本論文では、テスト。

 

gitolite依存関連するPerlのインストールパッケージ:

[root@git ~]# yum install 'perl(Data::Dumper)'Loaded plugins: fastestmirrorLoading mirror speeds from cached hostfile   ......                                                                                                                                                         | 6.8 MB  00:00:01     Package perl-Data-Dumper-2.145-3.el7.x86_64 already installed and latest versionNothing to do

SSHサーバの公開鍵を確認します。

查看是否存在/home/git/.ssh/authorized_keysファイル。ある場合、名前を変更(例:authorized_keys.bak)。

 

クライアント鍵ペアを作成します。

[root@client .~]# ssh-keygen -t rsa -C "[email protected]"Generating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa.Your public key has been saved in /root/.ssh/id_rsa.pub.The key fingerprint is:SHA256:jPwVAK1111ip6/mbFbuyg113wyIcl1yX7OYb7113RLg [email protected]The key's randomart image is:+---[RSA 2048]----+|     .+oo        ||     o   o       ||    .   ....     ||     = +. +.  .  ||    +.=o1o.  . . ||   .. ++ .o   o  ||  .+ oo..o.  2...||  oo*oo.o .o ....|| .+o=1.o...++  . |+----[SHA256]-----+

 

SSHサーバ(/ホーム/ gitの/ディレクトリ、あなたのxxx.pubの名前からファイル名)にクライアントの公開鍵をアップロードします。

 

[root@client ~]# scp /root/.ssh/id_rsa.pub [email protected]:/home/git/admin.pubid_rsa.pub                                                                                                                                                                       100%  400   148.9KB/s   00:00  

 

Gitのユーザーがに切り替えるには:

 

su git

インストールの設定gitolite:

[git@git ~]# cd /home/git/

gitoliteダウンロード:

[git@git git]# git clone https://github.com/sitaramc/gitoliteCloning into 'gitolite'...remote: Enumerating objects: 9646, done.remote: Total 9646 (delta 0), reused 0 (delta 0), pack-reused 9646Receiving objects: 100% (9646/9646), 3.01 MiB | 18.00 KiB/s, done.Resolving deltas: 100% (5987/5987), done.
 

把上传到服务器的管理员的公钥setup到gitolite:

[git@git ~]$ /home/git/gitolite/src/gitolite setup -pk admin.pub Initialized empty Git repository in /home/git/repositories/gitolite-admin.git/Initialized empty Git repository in /home/git/repositories/testing.git/WARNING: /home/git/.ssh/authorized_keys missing; creating a new one    (this is normal on a brand new install)

查看目录:

[git@git ~]$ ls -altotal 32drwx------. 8 git  git   241 Sep 28 23:33 .drwxr-xr-x. 3 root root   17 Sep  2 06:24 ..-rw-r--r--. 1 git  git   400 Sep 28 23:08 admin.pub-rw-r--r--. 1 git  git    18 Oct 31  2018 .bash_logout-rw-r--r--. 1 git  git   193 Oct 31  2018 .bash_profile-rw-r--r--. 1 git  git   231 Oct 31  2018 .bashrcdrwxr-xr-x. 2 git  git     6 Sep 28 23:21 bindrwxr-xr-x. 6 git  git   245 Sep 28 23:20 gitolitedrwx------. 6 git  git    57 Sep 28 23:33 .gitolite-rw-------. 1 git  git  7130 Sep 28 23:33 .gitolite.rcdrwxr-xr-x. 2 git  git     6 Sep 28 23:15 git-shell-commands-rw-------. 1 git  git    12 Sep 28 23:33 projects.listdrwx------. 4 git  git    51 Sep 28 23:33 repositoriesdrwx------. 2 git  git    56 Sep 28 23:33 .ssh

看到repositories目录下已经有了两个git仓库:

[git@git ~]$ ls -al repositories/total 0drwx------. 4 git git  51 Sep 28 23:33 .drwx------. 8 git git 241 Sep 28 23:33 ..drwx------. 8 git git 181 Sep 28 23:33 gitolite-admin.gitdrwx------. 7 git git 162 Sep 28 23:33 testing.git

 

管理者は、直接ローカルサービスを管理するためのgitのクローンを作成するために倉庫gitolite-adminのデフォルトのリモート管理を設定することができます。

[root@client git]# git clone [email protected]:gitolite-adminCloning into 'gitolite-admin'...remote: Counting objects: 6, done.remote: Compressing objects: 100% (4/4), done.remote: Total 6 (delta 0), reused 0 (delta 0)Receiving objects: 100% (6/6), done.

ディレクトリ構造を参照するtreeコマンドを使用します(そのようなコマンドがないことを、あなたは木をインストールyumをインストールする必要があります):

[root@client git]# tree gitolite-admin/gitolite-admin/├── conf│   └── gitolite.conf└── keydir    └── admin.pub
2 directories, 2 files

どこで:

CONF:設定フォルダです。

keydirディレクトリ:クライアントのパブリックフォルダは、すべてがここに公共のニーズにGITにアクセスする必要があります。(:アクセス権を設定するとき、ユーザー名としてusername.pub、ユーザ名、そのファイル名の形式に注意してください。)

 

倉庫へのユーザーの読み取りおよび書き込み権限(修正confフォルダのgitoliteファイル)の設定​​:

repo gitolite-admin    RW+     =   admin
repo testing    RW+     =   @all
  • repo倉庫を代表して意味、新しく追加されたレポ場合は、新しい空の倉庫を作成するために、サーバーに代わって、倉庫は後で自動的にサーバーにプッシュし作成されます。

  • RW 読み書きを代表して。

  • @all みんなを代表して。

  • masterそして、  dev枝の代表

ここでは、SVNのアクセス許可の設定を参照することができます。

 

修正することができ、管理者を有効にするには、サーバーに変更をコミットすることができます。

簡単に言うと、ここで、より多くのセルフテスト〜

おすすめ

転載: blog.csdn.net/mdykj33/article/details/102777289