2012-10-20 62 views
9

有必要防止root更新git(working)目錄。推理包括但不限於:防止不必要的文件系統所有權更改。如何防止root運行git pull?

沒有任何git掛鉤似乎阻止在它發生之前提取/合併/拉動,類似於預提交掛鉤。或者至少,我沒有看到這裏(或手冊頁): http://www.analysisandsolutions.com/code/git-hooks-summary-cheat-sheet.htm

想法?

+4

*「防止根[...]」* - 我不認爲這是可能的。 – poke

+0

爲什麼?你試圖避免的實際問題是什麼?如果您試圖阻止存儲庫中的文件被root用戶擁有,請不要在以root用戶身份登錄時進行提取。 – meagar

+1

@meagar已經在做這個。唉,在許多人擁有root/sudo訪問權限的團隊環境中。要專門阻止人們以root身份登錄並且無意中更改他們不應該改變的內容。有時候,人們會忘記舊的習慣(我們以前需要root/sudo privs才能獲得更新,但不再是),以root身份登錄,並做他們不應該做的事情。 –

回答

4

我看到這個沒有解決,但至少是「減輕」是通過包裝的git的命令的唯一方法:

所有的git命令都通過該包裝物進行如果用戶ID不是root。

8

更改/root/.bashrc將新目錄添加到PATH的開頭。在那裏添加一個名爲git的shell腳本,測試$1是少數只讀命令(show/status/log/rev-list等)中的一個,如果該命令可接受,則調用/usr/bin/git "[email protected]"。這將防止你的團隊中的任何人以無用的身份運行git pull。如果你擔心他們故意這樣做,你有更大的問題...

+5

更好的是,只需打印一條錯誤消息,比如'請不要以root身份運行git「。 –

+2

就我而言,這是我部門的經理,每當他沒有權限做某事時,他都會繼續做'sudo su'。然後他做了一個git pull並把我的文件搞砸了。我只是想要一個任何git命令的錯誤消息,說「永遠不要以root身份運行git命令!停止搞亂我的文件權限!」 – Mnebuerquo