मेरा सभी कोड बेस एक सबवर्जन रिपोजिटरी में संग्रहीत किया जा रहा है जिसे मैं अपने लोड संतुलित अपाचे वेब सर्वरों में फैलता हूं, जिससे कोड को जांचना, अपडेट चलाएं और निर्बाध रूप से उत्पादन में विकास में अपना कोड प्राप्त करना आसान हो जाता है।लिनक्स फ़ाइल अनुमतियों को संशोधित करने से बचें।
असुविधाओं में से एक जो मुझे यकीन है कि चारों ओर एक आसान काम है (प्रत्येक चेकआउट पर एक स्क्रिप्ट निष्पादित करने के अलावा), लिनक्स अनुमतियां उन फ़ाइलों पर सेट (बैक) प्राप्त कर रही हैं जो उपवर्तन के साथ अद्यतन या चेक आउट की गई हैं । हमारी सुरक्षा टीम ने यह निर्धारित किया है कि Owner
और Group
httpd.conf फ़ाइलों में सेट है, और documentRoot
के भीतर सभी निर्देशिकाएं 700 की अनुमतियां प्राप्त करती हैं, सभी गैर निष्पादन योग्य फ़ाइलें (जैसे * .php, * .smarty, * .png) 600 की लिनक्स अनुमतियां प्राप्त करें, सभी निष्पादन योग्य फ़ाइलों को 700 प्राप्त होता है (उदाहरण के लिए * .sh, * .pl, * .py)। Httpd सेवा द्वारा पढ़ने के लिए सभी फ़ाइलों को apache:apache
पर स्वामी और समूह सेट होना चाहिए क्योंकि केवल फ़ाइल स्वामी को अनुमतियों के माध्यम से पहुंच प्राप्त करने के लिए सेट किया गया है।
हर बार जब मैं एक svn update
चलाते हैं, या svn co
, भले ही फाइलों को नहीं बनाया जा सकता है (यानी svn update
), मैं खोजने हूँ फ़ाइलों का स्वामित्व SVN आदेशों चलाने वाले खाते के लिए सेट किया जा रहा है कि, और अक्सर बार, फ़ाइल अनुमतियां मूल रूप से उनके अलावा किसी अन्य चीज़ पर सेट हो रही हैं (यानी अद्यतन से पहले एक .htm फ़ाइल 600 है, लेकिन svn update
के बाद, यह 755 या 777 तक सेट हो जाती है)।
फ़ाइल अनुमतियों और स्वामित्व को अद्यतन करने के लिए उपversण प्रयासों को बाईपास करने का सबसे आसान तरीका क्या है? क्या कुछ ऐसा है जो svn क्लाइंट के भीतर किया जा सकता है, या लिनक्स सर्वर पर मूल फ़ाइल अनुमतियों को बनाए रखने के लिए किया जा सकता है? मैं RHEL5 चला रहा हूं (और अब कुछ चुनिंदा उदाहरणों पर 6)।
+1। अच्छा निर्णय। – pboin
मुझे एक ही समस्या में आती है। इससे पहले कि मैं svnkit (एक जावा svn) का उपयोग करता हूं, जहां यह व्यवहार नहीं है, यह फ़ाइल के स्वामी को रखने में सक्षम है ... लेकिन यह बहुत धीमा है ... मुझे मूल svn संस्करण में क्या बदलता है। मुझे यह "फीचर" बहुत याद आ रही है। – ceinmart
यह सही नहीं है।आप समूह के रूप में समूह को लागू करने के लिए निर्देशिकाओं पर 'setgid' का उपयोग कर सकते हैं। मैंने यहां विवरण के साथ उत्तर दिया: http://stackoverflow.com/a/42800354/2578286 – Bell