git通过gitosis来管理权限(三)
2015-11-03 18:38
381 查看
首先,git服务器的安装参见
/article/8915440.html
这篇文章的一小节。
开始安装gitosis
一、首先安装python工具:
二、获取并安装gitosis:
进入/tmp目录(将要安装的gitosis文件克隆到该目录)
三、创建一个用户git:
四、将该user添加到root组里(如果登录该用户可以执行sudo的话,可以省略该步骤)
执行:visudo
找到:
root ALL=(ALL:ALL) ALL
在下面添加一行:
git ALL=(ALL:ALL) ALL
五、添加git用户为仓库管理员:
在上面一个步骤如果报类似以下的错误:
重启系统,重新生成秘钥对来解决。参见文章:
/article/8915442.html
启动Gitosis之后,会自动初始化gitosis-admin.git库文件
此时去/home/git/repositories下可以看到gitosis-admin.git库文件。
权限控制在gitosis.conf,公钥SSH Key文件放在/home/git/repositories/gitosis-admin.git/gitosis-export/keydir下,以后所有的客户端用户的公钥都放在这个文件下。
这样,当有新开发者加入项目的时候,将它生成的公钥放到/home/git/repositories/gitosis-admin.git/gitosis-export/keydir目录下,就拥有正常的代码推送权限了。
将git用户的公钥放到/home/git/repositories/gitosis-admin.git/gitosis-export/keydir目录下:
到此,gitosis配置完成
/article/8915440.html
这篇文章的一小节。
开始安装gitosis
一、首先安装python工具:
apt-get install python-setuptools
二、获取并安装gitosis:
进入/tmp目录(将要安装的gitosis文件克隆到该目录)
cd /tmp安装gitosis:
git clone https://github.com/tv42/gitosis.git cd gitosis sudo python setup.py install
三、创建一个用户git:
adduser git
四、将该user添加到root组里(如果登录该用户可以执行sudo的话,可以省略该步骤)
执行:visudo
找到:
root ALL=(ALL:ALL) ALL
在下面添加一行:
git ALL=(ALL:ALL) ALL
五、添加git用户为仓库管理员:
su git cd ~ mkdir .ssh cd .ssh ssh-keygen -t rsa cp /home/git/.ssh/id_rsa.pub /tmp sudo -H -u git gitosis-init < /tmp/id_rsa.pub
在上面一个步骤如果报类似以下的错误:
Traceback (most recent call last): File "/usr/local/bin/gitosis-init", line 9, in <module> load_entry_point('gitosis==0.2', 'console_scripts', 'gitosis-init')() File "/usr/local/lib/python2.7/dist-packages/gitosis-0.2-py2.7.egg/gitosis/app.py", line 24, in run return app.main() File "/usr/local/lib/python2.7/dist-packages/gitosis-0.2-py2.7.egg/gitosis/app.py", line 38, in main self.handle_args(parser, cfg, options, args) File "/usr/local/lib/python2.7/dist-packages/gitosis-0.2-py2.7.egg/gitosis/init.py", line 123, in handle_args user = ssh_extract_user(pubkey) File "/usr/local/lib/python2.7/dist-packages/gitosis-0.2-py2.7.egg/gitosis/init.py", line 39, in ssh_extract_user raise InsecureSSHKeyUsername(repr(user)) gitosis.init.InsecureSSHKeyUsername: Username contains not allowed characters: 'git@2f3c81d1dac3'
重启系统,重新生成秘钥对来解决。参见文章:
/article/8915442.html
启动Gitosis之后,会自动初始化gitosis-admin.git库文件
此时去/home/git/repositories下可以看到gitosis-admin.git库文件。
权限控制在gitosis.conf,公钥SSH Key文件放在/home/git/repositories/gitosis-admin.git/gitosis-export/keydir下,以后所有的客户端用户的公钥都放在这个文件下。
这样,当有新开发者加入项目的时候,将它生成的公钥放到/home/git/repositories/gitosis-admin.git/gitosis-export/keydir目录下,就拥有正常的代码推送权限了。
将git用户的公钥放到/home/git/repositories/gitosis-admin.git/gitosis-export/keydir目录下:
cp /home/git/.ssh/id_rsa.pub /home/git/repositories/gitosis-admin.git/gitosis-export/keydir
到此,gitosis配置完成
相关文章推荐
- CentOS网络配置
- js对汉字首字母排序
- OC学习第七天_2 类的拓展 Category Extension Protocol delegate
- java程序入口 ( cmd )
- 线程池实现
- jQuery选择器
- 安装JDK
- LeetCode题解——Binary Search Tree Iterator
- 算法导论22.1图的表示 练习总结
- php对接西部数码API
- Hishop网站迁移后出现DataProtectionConfigurationProvider错误
- js、php、thrift的坑
- 最小公倍数简洁代码
- javaScriptObject转String
- Leetcode || Merge Two Sorted Lists
- -(void)viewWillAppear:(BOOL)animated,- (void)viewDidLoad 的区别
- IOS开发技巧--模拟器 cannot run 项目.
- 循环语句练习
- 【memcache缓存专题(1)】memcache的介绍与应用场景
- <学习总结1>