git通过gitosis来管理权限(三)
生活随笔
收集整理的這篇文章主要介紹了
git通过gitosis来管理权限(三)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
首先,git服務器的安裝參見
http://blog.csdn.net/lyhdream/article/details/49561645
這篇文章的一小節。
開始安裝gitosis
一、首先安裝python工具:
二、獲取并安裝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 runreturn app.main()File "/usr/local/lib/python2.7/dist-packages/gitosis-0.2-py2.7.egg/gitosis/app.py", line 38, in mainself.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_argsuser = 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_userraise InsecureSSHKeyUsername(repr(user)) gitosis.init.InsecureSSHKeyUsername: Username contains not allowed characters: 'git@2f3c81d1dac3'
重啟系統,重新生成秘鑰對來解決。參見文章:
http://blog.csdn.net/lyhdream/article/details/49619805
啟動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配置完成
總結
以上是生活随笔為你收集整理的git通过gitosis来管理权限(三)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决gitosis.init.Insec
- 下一篇: 配置apache支持cgi