2013-01-07 36 views
5

मैं एक नंगे भंडार का उपयोग करता हूं जहां एकाधिक देव धक्का दे सकते हैं।साझा किया गया भंडार गलत समूह

जैसा कि सुझाव दिया गया है, मैंने उपयोगकर्ताओं को समूह को धक्का देने की अनुमति देने के लिए गिट को बताने के लिए sharedRepository = true का उपयोग किया था।

मैं pushers जोड़ना चाहते हैं, मैं सिर्फ उन्हें आवश्यक समूह जोड़ने के रूप में माध्यमिक समूह (sudo adduser the_pusher the_required_group)

जब devs धक्का, मैं objects अच्छा अनुमति से निर्मित निर्देशिका में बनाई गई फ़ाइलों नहीं बल्कि अच्छा समूह को देखने के ।

उदाहरण:

$ ls -l repository/objects 
... 
drwxrwsr-x 2 pusher1 pusher1 4096 janv. 7 14:13 fa 
drwxrwsr-x 2 pusher1 pusher1 4096 déc. 26 15:29 fc 
drwxrwsr-x 2 pusher1 pusher1 4096 déc. 11 12:41 fd 
... 

आप देख सकते हैं, संलग्न समूह pusher1

मैं the_required_group बजाय करने के लिए इन वस्तुओं को संलग्न करने के Git कर सकते हैं कैसे के प्राथमिक समूह है?


अद्यतन

मैं SSH पर Git का उपयोग करें। प्रत्येक देव का अपना स्वयं का एसएस खाता होता है।

+1

क्या प्रोटोकॉल? गिट या एसएसएच? – CharlesB

+0

प्रश्न अद्यतन –

उत्तर

3

मेरी टीम chmod साथ भंडार में सभी निर्देशिकाओं पर s विकल्प सेट सही उपयोगकर्ता/समूह को तो भंडार में chmod g+s सब कुछ इस chown और chgrp फ़ाइलों और निर्देशिकाओं करने के लिए द्वारा इस तय किया है।

+s नई फ़ाइलों को उनके मूल निर्देशिका का समूह होने का कारण बनता है। फाइल सिस्टम -ओ nogrpid और सेट समूह आईडी बिट के साथ रखा जाता है, तो से man 2 chown

  • लिया मूल निर्देशिका पर सक्षम है, तो एक नई फ़ाइल के समूह में एक ही के रूप में किया जाता है मूल निर्देशिका की है।

भी देखें, man chmod और man 2 chmod

+0

यह एक अच्छा समाधान है। मै उसे करने की एक कोशिश तो करूंगा। क्या हम इसे केवल 'ऑब्जेक्ट्स' पर सेट नहीं कर सके? –

+0

मुझे यकीन नहीं है। मुझे लगता है कि आपको कम से कम 'रेफरी' और शायद 'जानकारी' करने की भी आवश्यकता होगी। 'पैक-रेफ्स' एक $ GIT_DIR' की जड़ में एक फ़ाइल है जो मुझे लगता है कि समय-समय पर धक्का देकर संशोधित किया जा सकता है लेकिन मुझे यकीन नहीं है। यदि ऐसा है तो विकल्प सेट करने के लिए '$ GIT_DIR' की आवश्यकता होगी। – asm