Ubuntu Gitosis安装设置
程序员文章站
2024-03-25 12:51:22
...
Gitosis就是一套用来管理authorized_keys文件和实现简单连接限制的脚本。用来添加用户和设定权限的并非通过网页程序,而只是管理一个特殊的Git仓库。你只需要在这个特殊仓库内做好相应的设定,然后推送到服务器上,Gitosis就会随之改变运行策略。
Git服务器端配置gitosis
1.安装SSH服务端
sudo apt-get install openssh-server
2.安装python的setuptool
sudo apt-get install python-setuptools
3.获取并安装gitosis
cd /tmp
git clone https://github.com/res0nat0r/gitosis.git
cd gitosis
sudo python setup.py install
在管理员机器上执行:
ssh-****** -t [rsa|dsa]
将会生成**文件和私钥文件 id_rsa_admin,id_rsa_admin.pub,将生成的管理员机器的公钥id_rsa.pub上传到git服务器scp -rid_rsa_admin.pub [email protected]:~/.ssh
将id_rsa_admin.pub拷贝到/tmp目录下
cp ~/.ssh/id_rsa_admin.pub /tmp
sudo -H -u git gitosis-init < /tmp/id_rsa_admin.pub
执行该命令就会在~/repositories目录下生成gitosis-admin.git,修改该目录下的文件权限
sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
管理员客户端
1.客户端获取gitosis
在管理员机器上克隆上面在git服务器上创建的gitosis-admin.git库,由于前面创建gitosis-admin.git库时使用的是管理员机器的公钥,因此在克隆时只要加入对应的私钥就可以了。
git clone [email protected]_IP:/gitosis-admin.git
在当前路径下生成gitosis-admin,该目录下包含gitosis.conf、keydir。
gitosis.conf文件是用来设置用户、仓库和权限的控制文件。keydir目录则是保存所有具有访问权限用户公钥的地方,各个用户按照前面提到的办法生成各自的ssh公钥文件后,服务器管理员把所有人的ssh公钥文件都拿来,拷贝到keydir目录下。
2.添加用户权限
cp /tmp/id_rsa_user1.pub keydir/user1.pub # 请依照实际帐号命名, 不要取 user1, user2
cp /tmp/id_rsa_user2.pub keydir/user2.pub
git add keydir/user1.pub keydir/user2.pub
git commit -m 'add user1, user2 public key'
git push
3.设置工程权限
gitosis.conf文件格式:
[group gitosis-admin] //组名
members = [email protected] //组内成员
writable = gitosis-admin //组内成员具有写权限的仓库
readonly = helloworld//组内成员具有读权限的仓库
[group gitosis-admin]
writable = gitosis-admin
members = [email protected]
增加下述, myteam 是 group name, 此 group 有 user1, user2 的使用者, 可以写入 project_name.git 的专案[group myteam]
writable = project_name
member = user1 user2
提交修改到git服务器
git commit -m 'add user1, user2 write access to project_name' -a
git push
4.添加工程
使用git在指定目录创建一个git库,该git库的名字必须事先在gitosis.conf文件中配置了对应权限。
[group test]
members = [email protected]
writable = example
创建example工程库:mkdir example
cd example
git init
touch hello.txt
git add hello.txt
git commit -am 'first commit'
git remote add origin [email protected]_IP:example.git 【管理员必须在gitosis.conf中配置了】
git push origin master
开发人员客户端
git clone [email protected]_IP:example.git
上一篇: 使用Java ImageIO类进行批量图片格式转换(转载) 博客分类: 图像处理 ImageIO
下一篇: java中各种流的应用场景 博客分类: java基础 java流区别inputstreamOutputStreamWriter
推荐阅读
-
Ubuntu Gitosis安装设置
-
Ubuntu 18.04最小安装OpenCV3.4.8的方法
-
机器视觉(一) : ubuntu16.04下ORBSLAM2安装调试
-
Ubuntu 16.04 CUDA9.0 Docker 安装 tensorflow-gpu
-
Ubuntu 16.04 笔记本双显卡安装 CUDA9.0
-
ubuntu16.04安装CUDA9.0
-
Ubuntu16.04 cuda9.0 opencv3.3.0 卸载并重新安装
-
从PPA为Ubuntu 10.04安装chromium 博客分类: unix like UbuntuChrome10.04Chromiumppa
-
从ubuntu系统安装到ORB_SLAM2安装再到evo评测工具安装全过程
-
ubuntu环境下安装MySQL