自己做的网站怎么接入微信,泉州免费建站模板,北京最大的网站开发公司,服务器安全检测工具Gitolite是一款Perl语言开发的Git服务管理工具。通过公钥对用户进行认证。并可以通过配置文件对些操作进行基于分支和路径的精细控制。Gitolite採用的是SSH协议而且使用SSH公钥认证。因此不管是管理员还是普通用户。都须要对SSH有所了解。Gitolite的官网是#xff1a;https://… Gitolite是一款Perl语言开发的Git服务管理工具。通过公钥对用户进行认证。并可以通过配置文件对些操作进行基于分支和路径的精细控制。Gitolite採用的是SSH协议而且使用SSH公钥认证。因此不管是管理员还是普通用户。都须要对SSH有所了解。Gitolite的官网是https://github.com/sitaramc/gitolite。以下就来细说使用Gitolite搭建Gitserver的过程吧。 硬件需求Ubuntu电脑或虚拟机。正常网络訪问。 软件需求git-core,gitolite, openssh-server, git-daemon-runubuntumsysgitwindows 在Gitolite的搭建过程中Gitweb、Apache不是必须的Gitweb、Apache跟Gitolite一起使用。看到的效果类似于 http://git.chromium.org/gitweb/。 1. 安装配置Gitserver(IP:10.203.138.129) 安装Git和openssh。 $ sudo apt-get install git-core openssh-server 新建用户git该用户作为全部代码仓库和用户权限的管理者。 $ sudo groupadd git $ sudo useradd git –g git –m $ sudo passwd git 须要设置用户git的password 2. 下载gitolite 初始化server的全局设置为安装gitolite做准备。在不论什么一台机器上使用git。第一次必需要先设置user.name和user.email。 $ git config --global user.name “david” $ git config --global user.email “davidserver-pc”name和email任意 安装一下python的setup tool。 $ sudo apt-get install python-setuptools 获取gitolite包。 $ git clone https://github.com/sitaramc/gitolite.git或者到网上下载相应的gitolite 当然我们也能够使用包管理器进行安装。 $ sudo aptitude install gitolite 3. 配置gitolite 在git管理员的PC上先安装msysgitwindows系统。安装后打开gitbash。执行例如以下命令生成管理员密钥 $ ssh-keygen –t rsa 执行以上命令后。能够默认提示直接回车。回车后在当前用户文件夹下生成了.ssh/id_rsa和.ssh/id_rsa.pub。当中.ssh/id_rsa是私玥.ssh/id_rsa.pub是公钥。接下来能够使用例如以下命令将git管理员的公钥上传到gitserver。也能够直接复制到gitserver。 $ scp xxx/.ssh/id_rsa.pub webgod10.203.138.129:/tmp/admin.pub 回到Gitserver上。 $ sudo chmod ar /tmp/id_rsa.pub 运行Gitolite安装。 $ gl-setup /tmp/admin.pub Initialized empty Git repository in /home/repo/gitolite-admin.git/ Reinitialized existing Git repository in /home/repo/gitolite-admin.git/ Gitolite是通过一个git仓库来管理配置文件。仓库放在/home/git/repositories/gitolite-admin.git。 设置git仓库权限 $ sudo chown git:git /home/git/repositories $ sudo chmod 755 /home/git/repositories $ sudo chmod 755 /home/git/repositories/gitolite-admin.git/hooks/post-update 4. 在server上新建測试项目仓库 在server上新建一个空的项目仓库可。叫“test”。 切换到git用户 $ su – git $ cd repositories $ git init --bare test.git $ exit 到这里test仅仅是一个空仓库。它是不能clone下来的。为了能做clone必须先让管理员或有权限的人放一个初始化的版本号到仓库中。所以我们必须先改动一个gitolite-admin。 5. 管理gitolite的配置文件 Gitolite本身的配置也是通过git来实现的。在刚刚上传公钥的机器上把gitolite-admin.git这个仓库clone下来就能够以管理员的身份改动配置了。 新建一个目录如git129 $ mkdir git129 $ cd git129 $ git clone git10.203.138.129:gitolite-admin.git或使用全路径 注訪问git用户仓库的默认路径是/home/git/repositories/ $ cd gitolite-admin 该文件夹下的keydir文件夹是用来存放全部须要訪问gitserver的用户的ssh公钥。各个用户依照前面提到的办法生成各自的ssh公钥文件后把全部人的ssh公钥文件按名字又一次命名一下然后复制到keydir文件夹下然后改动gitolite.conf文件做对应的配置 [gitolite] [group gitolite-admin] writable gitolite-admin members davidDAVID-PC tomTOM-PC [group team] writable test members davidDAVID-PC tomTOM-PC pitterPITTER-PC 这个配置文件表达了例如以下含有gitolite-admin组成员有davidtom该组对gitolite-admin仓库有读写权限test组有davidtompitter三个成员该组对test仓库有读写权限。眼下这些配置文件的改动仅仅是在本地必须推送到远程的gitserver上才干真正生效。 增加新文件、提交并push到Gitserver $ git add . $ git commit –m “add test and someusers” $ git push origin master $ sudo chmod ar /tmp/id_rsa.pub 6. 初始化測试项目 如今server搭建完成而且有一个空的项目test在server上。接下来须要測试一下空仓库是不能clone的。所以须要某个有写权限的人初始化一个版本号。在client运行 $ mkdir test-ori $ cd test-ori $ git init 在client运行初始化一个本地的版本号库 $ echo “/* add something */” hello.c $ git add . $ git commit –m “initial version” $ git remote add origin git10.203.138.129:test.git $ git push origin master 到此为止test已经有了一个版本号了team的其它成员仅仅要先clone一下test仓库就能够了。并且gitolite.conf中赋予的读写权限。 7. 加入已有git项目 假设想将一个现成的git仓库放到Gitserver上供team使用比方clone了一个官方的kernel仓库想在内部使用它作为基础仓库。能够这样操作 首先须要从你的工作仓库中得到一个纯仓库。比方你的工作文件夹为~/kernel你想将该纯仓库复制到Gitserver上使用。Gitserver的管理员拿到这个纯仓库~/kernel后将其复制到/home/repo/下同一时候配置gitolite相关配置文件。比方说下载ALSA库。 $ git clone git://android.git.kernel.org/platform/external/alsa-lib.git $ git clone git://android.git.kernel.org/platform/external/alsa-utils.git 生成bare库 $ git clone --bare alsa-lib alsa-lib.git $ git clone --bare alsa-utils alsa-utils.git 将bare库移动到Gitserver文件夹 $ cp alsa-lib.git /home/repo 注意变更全部者。以获取提交权限。 $ chown -R git alsa-lib.git 8. Gitweb和Git Daemon的支持 Gitolite和Gitweb的整合提供了两个方面的内容。一个是能够设置版本号库的描写叙述信息用于在Gitweb项目列表中显示。还有一个则是自己主动生成项目的列表文件共Gitweb參考避免Gitweb使用低效率的文件夹递归搜索查找Git版本号库列表。能够在授权文件里设定版本号库的描写叙述信息并在gitolite-admin管理库更新时创建到版本号库的description文件里。 repo name one line of description repo name owner name one line of description 第一行为名为reponame的版本号库设定描写叙述。 第二行同一时候设定版本号库的属主名称以及一行版本号库描写叙述。 对于通配符版本号库。使用这样的方法就不现实了。Gitolite提供了SSH子命令共版本号库的创建者使用。 $ ssh gitserver setdesc path/to/repo.git $ ssh gitserver getdesc path/to/repo.git 第一条指令用于设置版本号库的描写叙述信息。 第二条指令显示版本号库的描写叙述信息。 Git服务由git-daemon的服务软件提供。尽管git-daemon能够支持写操作但由于git-daemon没有提供认证支持。因此非常少人会配置git-daemon来提供匿名的写服务。使用git-daemon提供的Git版本号库仅仅读服务效率非常高。故git-daemon一直是Git版本号库仅仅读服务的首选。 假设想使用git协议那么就须要安装git-daemon。 $ sudo apt-get install git-daemon-run 编辑git-daemon配置文件 $ sudo gedit /etc/sv/git-daemon/run #!/bin/bash exec21 echo‘git-daemon starting.’ execchpst -ugitdaemon “$(git--exec-path)”/git-daemon --verbose --export-all--enablereceive-pack --enableupload-pack --enableupload-archive --reuseaddr --base-path/home/webgod/ 说明 --base-path 指向Gitserver的根文件夹 --enablereceive-pack --enableupload-pack --enableupload-archive 以上三个是与git-clonegit-push。git-pull相关的。查看详情使用命令$ man git-daemon查看。 重新启动gitserver $ sudo sv restart git-daemon 在Gitserver上 $ cd /home/webgod $ mkdir RepoServer $ cd RepoServer $ git init --bare manifest.git 切换到其它文件夹 $ cd ~/test $ git clonegit://127.0.0.1/RepoServer/manifest.git (è $ git clone git127.0.0.1:/home/webgod/RepoServer/manifest.git) 这里就实现了所谓的“匿名訪问”。 转载于:https://www.cnblogs.com/claireyuancy/p/7229837.html