2017-04-13 34 views
0

我有一個git存儲庫,我需要通過使用「chmod 6775」設置setuid作爲其中一個文件,然後提交更改。使用git設置位「setuid」用於文件和存儲變更

但是,當我將該存儲庫下載到其他主機時,這些更改不存在。我看不出「S」或「S」標誌的屬性:

After commit: 
-rwsrwsr-x 1 root stuff 51804 Apr 13 18:05 cli-0-38 

After download: 

-rwxrwxr-x 1 root stuff 51804 Apr 13 18:05 cli-0-38 

請您指點如何實現呢?

回答

2

的Git(不幸)不跟蹤完整filemodes。它只跟蹤可執行位,即使如此,它只跟蹤整個文件的一個位,而不是每個用戶/組/其他位。所以你將無法使用git來跟蹤這個設置。例如,解決此問題的一種方法是編寫一個小型「setup.sh」shell腳本,用於存儲各種「chmod u + s文件名」操作,並在執行新克隆後運行該腳本,或者拉。

+0

謝謝!但不幸的是,在這種情況下,我將不得不編輯Salt和CFeng配置來克服它。 – user54

+0

跟蹤權限,很好地是一個錯誤,而不是一個功能。事實上,它*在早期的Git中是一個「功能」(後來被刪除),但因此'git fsck'允許blob對象具有模式'664',具有組寫入權限以及'644' , 沒有它。這允許使用當它被認爲是功能時返回的存儲庫。 – torek

1

它是你的.git文件夾,你應該看到一個配置。 看起來像這樣;

[核心]

FILEMODE =假

如果是這樣它更改爲真而不是假的,也可以使用;

混帳配置core.filemode真正

+0

[core] repositoryformatversion = 0 filemode = true在此處已設置。 – user54

+0

嗯,我不知道對不起。祝你好運獲得幫助! – Nathan

相關問題