阿里雲CentOS7.3搭建多用戶私有git服務器(從安裝git開始)


起因

自己會有練手的不敢公開的項目,就自己搭建個服務器放自己的渣代碼了。
在經歷了連不上服務器、沒有訪問權限、沒法提交以后,我打通了任督二脈。
我這個git服務器適合條件:1、就那么幾個人小項目,不是幾百人的大項目;2、不需要什么惡心的代碼權限的(這玩意我搞不了)。

經過

首先聲明我下面的操作都是在root用戶下執行的。

放行git端口

  1. 防火牆添加放行規則,將3690端口放行

安裝git

  1. 安裝git必備工具包: yum -y groupinstall "Development Tools"
  2. 安裝git依賴包: yum -y install zlib-devel perl-ExtUtils-MakeMaker asciidoc xmlto openssl-devel
  3. 接下來是下載git,先去找最新版,放個官方的紅帽下載鏈接:Index of /pub/software/scm/git/,找到最新版的tar.gz結尾的源碼包(我現在是2019-03-21,最新版是2.21.0)。

    我安裝git的目錄是 /usr/local/tools/git/
    進入git目錄:mkdir -p /usr/local/tools/git cd /usr/local/tools/git/,下載最新版git: wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.21.0.tar.gz
  4. 解壓git:tar -zvxf git-2.21.0.tar.gz
    我要安裝在/usr/local/tools/git/git-2.21.0目錄下,因此我把安裝包重命名成git-2.21.0-installer了:mv git-2.21.0 git-2.21.0-installer
  5. 開始編譯安裝包:cd git-2.21.0-installer ./configure --prefix=/usr/local/tools/git/git-2.21.0(這兒把prefix后面的目錄改成你要安裝的目錄就行了)make && make install
  6. 加入環境變量:vim /etc/profile,在后面追加GIT_HOME=/usr/local/tools/git/git-2.21.0(就是上面prefix后面的那個目錄),$PATH=$GIT_HOME/bin:$PATH export GIT_HOME PATH這三句,然后ESC :wq保存退出,執行 source /etc/profile,使得我們的配置生效。
  7. 驗證git是否安裝成功: git --version,出現版本信息就對了。

搭建git服務器

首先說明下倉庫可以放在其他非用戶家目錄下,也就是說/home/下面原來有的目錄都不能用。

  1. 新建git倉庫目錄: mkdir -p /usr/local/repository/git;

  2. 新建訪問用戶: useradd -M zhangsan, useradd -M lisi ,useradd -M wangwu, 這樣子用-M添加用戶不會生成/home/zahngsan家目錄;

  3. 新建訪問用戶組: groupadd git;(創建git用戶組,你也可以改成其他的,比如:groupadd developer或者其他用戶組反正你記得就行了);

  4. 給用戶設置密碼: passwd zhangsanpasswd lisi, passwd wangwu,分別給他三個設置登陸密碼,拉取代碼和提交代碼需要提供密碼;

  5. 添加用戶到用戶組: usermod -G git zhangsan, usermod -G git lisi, usermod -G git wangwu

  6. 變更git倉庫的所有者到任何人: chown -R nobody:nobody /usr/local/repository/git ,賦予nobody就是把權限給了所有人;

  7. 修改git倉庫的讀寫權限:chmod -R 777 /usr/local/repository/git,這樣子git倉庫就能讀寫了,否則會報錯拒絕提交的;

  8. 變更git倉庫的所有人為git用戶組: chgrp -R git /usr/local/repository/git, 這是修改權限給git用戶組的。

  9. 驗證文件權限: cd /usr/local/repository/ ll,看下git文件夾前綴那些是不是變成了下圖這樣子(主要看drwxrwxrwx(讀寫權限) nobody(可訪問用戶任何人) git(可訪問用戶組git) )。

  10. 修改用戶shell登陸權限:vim /etc/passwd,找到最后頭的zhangsan、lisi、wangwu,把冒號后面的/bin/bash改成usr/local/tools/git/git-2.21.0/bin/git-shell,就是你的git安裝目錄下的/bin/git-shell。

  11. 添加用戶的SSH公鑰:創建公鑰目錄mkdir -p /home/git/.ssh/,創建密鑰存放文件vim authorized_keys 將從zahngsan、lisi、wangwu的電腦的C:/users/用戶名/.ssh目錄下找到id_rsa.pub,一行一個全都復制到該文件中;
    (PS:如果張三沒有id_rsa.pub文件的話,那就用cmd執行git config --global user.name "zahngsan" git config --global user.email "張三的能接收郵件的郵箱",然后執行 ssh-keygen按三下回車,就有那個文件了)

  12. 其實都到現在為止,我們已經搭建好了git服務器,接下來進入裝逼時刻。

驗證git服務器

  1. 創建裸倉庫: git init --bare /usr/local/repository/git/myGit.git,git服務器初始化倉庫的時候一定要加上--bare,否則你的倉庫不能推送代碼
  2. 打開cmd切換到指定目錄,輸入:git clone zhangsan@服務器IP:/usr/local/repository/git/myGit.git,按照提示輸入密碼就能clone項目;
  3. 然后增加個readme.md或者其他文件,在cmd執行git add readme.md, git commit -m"新增readme文件", git push,就看執行push以后是否成功就行了。

結尾

你搭建出來了嗎?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM