1. 程式人生 > >git通過gitosis來管理許可權(三)

git通過gitosis來管理許可權(三)

首先,git伺服器的安裝參見

這篇文章的一小節。

開始安裝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: '
[email protected]
'

重啟系統,重新生成祕鑰對來解決。參見文章:
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管理許可權

首先,git伺服器的安裝參見 這篇文章的一小節。 開始安裝gitosis 一、首先安裝python工具: apt-get install python-setuptools 二、獲取並安裝gitosis: 進入/tmp目錄(將要安裝的gitosis檔案克隆到該目錄)cd

git的版本管理使用-拉取分支程式碼

git系列文章 參考文章 *之前2篇是在github上操作的git版本管理,這篇是在開源中國·碼雲 上面的git版本管理。使用下來都差不多,暫時沒有發現不一樣的內容。 關於分支內程式碼的拉取的問題: 問題詳述:看下圖,我們一般都是

springBoot+springSecurity 動態管理Restful風格許可權

2 連結2:為一個REST服務使用Spring Security的基本和摘要認證 3 springboot+springsecurity 非同步日誌 驗證碼 記住我 (驗證xml方式和註解方式事務同時存在的情況) 原來預設返回html的類(如跳轉到拒絕訪問頁面),

Shiro許可權管理框架:Shiro中許可權過濾器的初始化流程和實現原理

本篇是Shiro系列第三篇,Shiro中的過濾器初始化流程和實現原理。Shiro基於URL的許可權控制是通過Filter實現的,本篇從我們注入的ShiroFilterFactoryBean開始入手,翻看原始碼追尋Shiro中的過濾器的實現原理。 初始化流程 ShiroFilterFactoryBean實現

文件與目錄管理命令

信息 touch share 單位換算 目錄管理類命令包括:cd,pwd,ls,mkdir,rmdir,tree,cp,mv,rm,touch,stat1.1.ls功能:列出文件或目錄命令幫助:man lsinfo lsls --helphelp cd #只有內部命令才能用ls /usr/s

Java實驗--基於Swing的簡單的歌曲信息管理系統

img dbo check clas str http 按鈕 cancel uuid 轉載請註明出處,上一篇《Java實驗--基於Swing的簡單的歌曲信息管理系統(二)》介紹了項目的目錄結構和Dao層,本篇主要講解界面的繪制和業務層Service。 登錄界面   登錄

Linux系統管理初步 Linux網絡管理編輯中

中斷 網絡 lin 命令 連接 nag shell sha 系統管理 Linux網絡管理(一) 一、ifconfig命令ifconfig命令可以顯示網卡及ip參數,在centos6中是比較重要的命令。 使用示例:1、網卡停止與網卡啟動 ifdown (網卡名)ifup

PHP、thinkPHP5.0開發網站文件管理功能編輯文件

code AC RF ret 文件類型 功能 utf TP req public function edit(){ $file = iconv(‘UTF-8‘,‘GB2312‘,urldecode(input(‘file‘))); if(empty($file)

Linux 筆記 - 第十三章 Linux 系統日常管理Linux 系統日誌和服務

pac ica link tor 包含 3.1 request closed comm 博客地址:http://www.moonxy.com 一、前言 日誌文件記錄了系統每天發生的各種各樣的事情,比如監測系統狀況、排查問題等。作為系統運維人員可以通過日誌來檢查錯誤發生的原因

LAMP+Postfix+Dovecot+Postfixadmin搭建郵件管理系統

接上篇,我們部署完了MySQL服務,接下來開始不是Apache服務。四、部署Apache服務     1、安裝Apache所必須的依賴包     [[email protected] ~]# yum -y ins

linux系統 使用者身份與檔案許可權

0.檔案的隱藏屬性     Linux系統中的檔案除了具備一般許可權和特殊許可權之外,還有一種隱藏許可權,即被隱藏起來的許可權,預設情況下不能直接被使用者發覺。有使用者曾經在生產環境和RHEL考試題目中碰到過明明許可權充足但卻無法刪除某個檔案的情況,或者僅能在日誌檔案中追

安裝Git和建立一個倉庫repository

這裡講的是windows 安裝Git: 要使用Git,第一步當然是安裝Git了。根據你當前使用的平臺來閱讀下面的文字: 在Windows上使用Git,可以從Git官網直接下載安裝程式,然後按預設選項安裝即可。 安裝完成後,在開始選單裡找到“Git”->“Git Bash”,蹦出一個類似

angular6 + ng-zorro鹿途後臺管理系統專案升級改造 01 升級ng-zorro-antd到1.8+

 升級命令 npm i ng-zorro-antd   ng add ng-zorro-antd   ng-zorro-antd 1.8+的版本圖示使用方法存在差異,我們需要按照新的標準對專案的圖示進行調整,命令如下   ng g

angular6 + ng-zorro鹿途後臺管理系統項目升級改造 01 升級ng-zorro-antd到1.8+

管理系 圖標 lar 項目 實時更新 後臺管理 log 針對 建議 升級命令 npm i ng-zorro-antd ng add ng-zorro-antd ng-zorro-antd 1.8+的版本圖標使用方法存在差異,我們需要按照新的標準對項目的圖標

Docker容器技術之映象管理基礎

上一篇文章連結:Docker容器技術基礎用法(二) 目錄   一、回顧 1.1docker容器的狀態 1.2docker容器管理時常用的命令 1.3docker的架構形式 二、About Docker Images 2.1 關於docker映象的作用

Spark Streaming狀態管理函式——MapWithState的使用scala版

MapWithState   關於mapWithState   注意事項   示例程式碼   執行   結論    關於mapWithState   需要自己寫一個匿名函式func來實現自己想要的功能。如果有初始化的值得需要,可以使用initia

深入理解java虛擬機器之自動記憶體管理機制

  各類垃圾收集器與GC日誌 (一)垃圾收集器   一、Serial收集器     最基本、歷史最悠久的收集器。使用複製演算法,用在新生代,通常老年代用Serial old配合。GC過程需要stop the world。適用於client模式下的虛擬機器。   二、ParNew收集器  

linux 記憶體管理---bootmem

為什麼要使用bootmem分配器,記憶體管理不是有buddy系統和slab分配器嗎?由於在系統初始化的時候需要執行一些記憶體管理,記憶體分配的任務,這個時候buddy系統,slab分配器等並沒有被初始化好,此時就引入了一種記憶體管理器bootmem分配器在系統初始化的

Java專案開發成績管理系統 學生資訊模組—主介面設定

學生資訊模組負責管理學生的個人資訊,包括對學生人數的增加對資訊的修改等, 1.主介面設計: 學生資訊主介面包含選單欄,列表按鈕,等元件,其實現程式碼如下: package student; import grade.GIndex; import java.awt.*;

vue+element 後臺管理系統樹形圖

vue+element 後臺管理系統,沒有依賴vue-cli,是經典的web模式。 <!DOCTYPE html> <html class="over_hidd"> <