啊~ 修改gitlab本地檔案許可權導致不能push、pull!千古罪人

lietobrain發表於2020-10-09

1. 問題描述

啊~ 修改gitlab本地檔案許可權導致不能push、pull!千古罪人,整個團隊程式碼提交停滯0.5h,還好解決了

Connection reset by 192.xxx.xx.xx port 8222
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

GitLab: API is not accessible
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

GitLab: Failed to authorize your Git request: internal API unreachable
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

大吃一驚

大吃一驚2
大吃一驚3

2. 問題起因

興高采烈:公司先前使用SVN,但是因為新開一個專案,作為GIT的力挺者,同時也是專案負責人,專案也開始用起了gitlab來進行對程式碼的託管,程式碼的審查,版本控制用起來也是得心應手,賊舒服~ 大家都其樂融融。

小插曲:但是,手賤的鄙人,把gitlab根的資料夾下所有檔案,直接賦予了-R 777 許可權,一開始覺得有許可權比沒許可權好,但出事故後,想要拉程式碼,卻發現自己竟然could not read!!。。
過了十分鐘,團隊裡的小弟們就發現了這個問題(畢竟剛reviewer完程式碼,我就開始手賤,小弟們也準備拉 開發分支的程式碼合併到自己的分支 T_T)

開始救火:接著就開始定位問題,解決問題

3. 問題解決

小結:gitlab有自己的許可權控制,不能再未熟悉的情況下,隨便更改!否則就需要折騰一下,還好折騰成功了~
自己維護的gitlab是由docker建立的,首先進入docker之後,第一步是檢視錯誤日誌,接著是根據錯誤日誌來進行定位問題,修復問題,最後重啟~

3.1 執行pull,並檢視錯誤日誌

# 方法1:檢視實時的錯誤資訊,例如執行pull,gitlab反饋的錯誤是什麼
# 進入docker所在gitlab
docker exec -it CONTAINER_ID bash
gitlab-ctl tail 
# 方法2:docker進入gitlab,連線到正在執行中的gitlab
docker attach CONTAINER_ID

檢視錯誤日誌

3.2 對pub key設定低許可權

 find / -name ssh_host_rsa_key  # 找到某個pub key
# 將當前的pub key進行逐一的降權 600

公鑰都設定為600

3.3 使用gitlab-ctl進行修復

gitlab-ctl reconfigure

估計第2步也是可以通過這個命令解決~

在這裡插入圖片描述

3.4 重啟gitlab

gitlab-ctl restart

感慨

雖然目前的託管的服務機只是臨時搭建的測試機子,再公司瞭解了GIT的好處後,也開始偏向GIT的使用,也準備加購超大伺服器來作為正式的託管伺服器;

但想想自己的操作,這種直接將根目錄的 “完全放權” 真的挺危險~ 各位兄臺還是把本文當做反面例子,雖然解決了,還得好好反思自己。

相關文章