2013-05-06 114 views
0

需要一點幫助腳本來編寫git pull。linux scripted git pull錯誤:無法打開.git/FETCH_HEAD:權限被拒絕

我們有一個Intranet服務器,我們正在嘗試編寫一個git pull腳本,並且我遇到了許可問題。

error: cannot open .git/FETCH_HEAD: Permission denied 

我們已經安裝在服務器上的用戶帳戶,克隆了一個項目到該帳戶,搭配chmod 775 -R目錄樹,並設置SSH密鑰,所以沒有密碼提示。

腳本看起來像這樣:

#! /bin/bash 
sudo /bin/su - gitrepouser 
cd /some/directory/for/git && git pull 

當我運行該腳本作爲另一個用戶,它運行sudo命令,停止,鍵入exit後,我得到的錯誤信息。

該腳本將在10分鐘的時間間隔內由我們的批處理過程調用,從BitBucket下拉任何生產變更。

想法?

回答

0

你可能需要使用戶的文件夾的所有者

chown gitrepouser -Rf /some/directory/for/git 
1

的問題是,su開始自己的殼;第二個命令不在該shell中執行,而是在原始命令中執行。您可以通過運行下面的腳本證明這一點:

#!/bin/bash 
su 
whoami 

除非你當你運行它已經是root,也不會輸出root

的解決方案是使用su-c開關:

sudo /bin/su -c "cd /some/directory/for/git && git pull" - gitrepouser 
+0

我想這一點,並有等待我們的管理員給我的權限運行該命令。 – idonaldson 2013-05-06 17:23:21

相關問題