どのようにGitの管理権限、それ?GIT SVN自身が管理するのにgitoliteを使用して、同様の管理者権限を提供していません。CentOS7環境下で本論文では、テスト。
gitolite依存関連するPerlのインストールパッケージ:
[root@git ~]# yum install 'perl(Data::Dumper)'
Loaded plugins: fastestmirror
Loading 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 version
Nothing 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.pub
id_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/gitolite
Cloning into 'gitolite'...
remote: Enumerating objects: 9646, done.
remote: Total 9646 (delta 0), reused 0 (delta 0), pack-reused 9646
Receiving 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 -al
total 32
drwx------. 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 .bashrc
drwxr-xr-x. 2 git git 6 Sep 28 23:21 bin
drwxr-xr-x. 6 git git 245 Sep 28 23:20 gitolite
drwx------. 6 git git 57 Sep 28 23:33 .gitolite
-rw-------. 1 git git 7130 Sep 28 23:33 .gitolite.rc
drwxr-xr-x. 2 git git 6 Sep 28 23:15 git-shell-commands
-rw-------. 1 git git 12 Sep 28 23:33 projects.list
drwx------. 4 git git 51 Sep 28 23:33 repositories
drwx------. 2 git git 56 Sep 28 23:33 .ssh
看到repositories目录下已经有了两个git仓库:
[git@git ~]$ ls -al repositories/
total 0
drwx------. 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.git
drwx------. 7 git git 162 Sep 28 23:33 testing.git
管理者は、直接ローカルサービスを管理するためのgitのクローンを作成するために倉庫gitolite-adminのデフォルトのリモート管理を設定することができます。
[root@client git]# git clone [email protected]:gitolite-admin
Cloning 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のアクセス許可の設定を参照することができます。
修正することができ、管理者を有効にするには、サーバーに変更をコミットすることができます。
簡単に言うと、ここで、より多くのセルフテスト〜