2012-05-08 42 views
1

我的系統管理員在文件系統的根目錄下放置了一個git repo來存儲配置文件。這意味着我可以在文件系統中的任何地方並添加到該存儲庫。這意味着「git status」並不告訴我沒有回購項目,如果我的項目不存在,因爲根目錄始終存在。將配置文件存儲在文件系統根目錄下的git倉庫中是個好主意嗎?

這對我來說似乎很危險。我錯了嗎?

對我來說,擁有一個git repo是一個隱含的合約,該目錄內的所有內容都在源代碼管理中(除了因.gitignore而忽略的對象文件等)。這個老派的源代碼控制是否在思考?

+0

我懷疑'/ .git'屬於'root',所以不只是任何人都可以添加它。另外,一個解決方法是用'echo'*'>〜/ .gitignore'創建'〜/ .git'(我總是這樣做)。 – nicerobot

回答

6

這對我來說似乎很危險。我錯了嗎?

我會認爲這是混淆,而不是危險的。在我工作的地方,我們嘗試過這樣的事情,並最終因爲你描述的原因而放棄了這一點。我們的解決方案是將大部分配置移至Puppet,因此我們將版本控制應用於配置管理系統,並且通常不直接對系統進行更改。

系統管理員擁有的一個選項是將.git目錄放在其他位置,然後在需要與存儲庫交互時適當地設置GIT_DIR環境變量。 E.g:

GIT_DIR=/etc/sysrepo.git git add /etc/someconfig.conf 

此作品與周圍放置.git目錄中的文件系統根目錄相關的問題。

1

在服務器上按需要運行最少量軟件的學校。運行git來管理對配置的更改並不是一個壞主意,但將硬盤驅動器空間置於服務器根目錄上可能會帶來危險。想象一下,如果偶然在回購站中添加一個5GB數據庫文件並在不讀取屏幕的情況下進行一些配置文件提交,將會影響您的硬盤空間。

更安全的路線和我目前正在實施的路線是找到一箇中心位置並在那裏創建回購。爲每個服務器和一個shell腳本創建一個子文件夾,該腳本可以將/ etc和任何其他文件從服務器轉移到該文件夾​​。然後從那裏用git跟蹤它們。

我在幾個地點實施了這個,它運行良好。你有明顯的安全問題需要解決,但他們不是無法克服的。

相關問題