मैं SVN में अभिगम नियंत्रण कैसे स्थापित करूँ?


84

मैंने SVN और अपलोड की गई परियोजनाओं का उपयोग करके एक भंडार स्थापित किया है। इन परियोजनाओं पर कई उपयोगकर्ता काम कर रहे हैं। लेकिन, सभी को सभी परियोजनाओं तक पहुंच की आवश्यकता नहीं है। मैं प्रत्येक प्रोजेक्ट के लिए उपयोगकर्ता अनुमतियाँ सेट करना चाहता हूं।

इसे कैसे प्राप्त किया जा सकता है?

जवाबों:


85

अपने SVN \ रेपोस \ YourRepo \ conf फ़ोल्डर आप दो फ़ाइलें, मिलेगा authz और पासवर्ड । ये दो हैं जिन्हें आपको समायोजित करने की आवश्यकता है।

में पासवर्ड फ़ाइल आप कुछ उपयोगकर्ता नाम और पासवर्ड जोड़ने की जरूरत है। मुझे लगता है कि आप पहले से ही ऐसा कर चुके हैं क्योंकि आपके पास इसका उपयोग करने वाले लोग हैं:

[users]
User1=password1
User2=password2

फिर आप ओर्ज़्म फ़ाइल के अनुसार अनुमति देना चाहते हैं :

अपने द्वारा इच्छित वैचारिक समूह बनाएं और लोगों को इसमें जोड़ें:

[groups]
allaccess = user1
someaccess = user2

फिर चुनें कि उनके पास अनुमतियों और परियोजना स्तर दोनों से क्या पहुंच है।

तो चलो हमारे "सभी एक्सेस" को सभी रूट से एक्सेस करें:

[/]
@allaccess = rw

लेकिन केवल हमारे "कुछ पहुंच" लोगों को केवल कुछ निचले स्तर के प्रोजेक्ट तक ही पहुंच दें:

[/someproject]
@someaccess = r

आपको ओर्लज और पासवड फाइलों में कुछ सरल दस्तावेज भी मिलेंगे ।


8
प्रासंगिक मैनुअल पेज है: svnbook.red-bean.com/en/1.7/…
ErichBSchulz

1
नोट: यदि आप ssh (
svnerve के

जब मैं उपयोगकर्ता के लिए एक भंडार के तहत उदाहरण के लिए एक फ़ोल्डर देता हूं, तो उपयोगकर्ता केवल सीधे लिंक के साथ इस फ़ोल्डर तक पहुंच सकता है। क्या उपयोगकर्ता के लिए रिपॉजिटरी जोड़ना संभव है और केवल उसे सौंपे गए फ़ोल्डर उसे दिखाए जाते हैं? उत्तर के लिए धन्यवाद ।
मौज़ान

समूहों को @groupnameइस एक बिट के साथ बुलाया जाता है जब नियमों को परिभाषित करते हुए, यह आपके उदाहरणों में एकदम सही है, बस इंगित करता है।
वुल्फ

28

@ स्टीफन बेली

अपने उत्तर को पूरा करने के लिए, आप अपने रिपॉजिटरी में एक सादे पाठ फ़ाइल के माध्यम से, परियोजना प्रबंधक को उपयोगकर्ता अधिकार सौंप सकते हैं।

ऐसा करने के लिए, आप अपने SVN डेटाबेस को डिफ़ॉल्ट authzफ़ाइल के साथ सेट करते हैं, जिसमें निम्नलिखित हैं:

###########################################################################
# The content of this file always precedes the content of the
# $REPOS/admin/acl_descriptions.txt file.
# It describes the immutable permissions on main folders.
###########################################################################
[groups]
svnadmins = xxx,yyy,....

[/]
@svnadmins = rw
* = r
[/admin]
@svnadmins = rw
@projadmins = r
* =

[/admin/acl_descriptions.txt]
@projadmins = rw

यह डिफ़ॉल्ट authzफ़ाइल SVN व्यवस्थापकों को आपके SVN रिपॉजिटरी के भीतर एक दृश्यमान सादे पाठ फ़ाइल को संशोधित करने के लिए अधिकृत करती है, जिसे '/admin/acl_desults.txt' कहा जाता है , जिसमें SVN व्यवस्थापक या प्रोजेक्ट प्रबंधक उपयोगकर्ताओं को संशोधित और पंजीकृत करेंगे।

फिर आप एक पूर्व-प्रतिबद्ध हुक सेट करते हैं जो यह पता लगाएगा कि संशोधन उस फ़ाइल (और केवल उस फ़ाइल) से बना है या नहीं।

यदि यह है, तो यह हुक की स्क्रिप्ट आपके सादे पाठ फ़ाइल की सामग्री को मान्य करेगी और जाँच करेगी कि क्या प्रत्येक पंक्ति SVT सिंटैक्स के साथ अनुरूप है।

फिर एक के बाद प्रतिबद्ध हुक अद्यतन करेगा \conf\authzके साथ फ़ाइल संयोजन की:

  • खाका authzफ़ाइल ऊपर प्रस्तुत
  • सादा पाठ फ़ाइल /admin/acl_descriptions.txt

पहला पुनरावृत्ति SVN व्यवस्थापक द्वारा किया जाता है, जो जोड़ता है:

[groups]
projadmins = zzzz

वह अपना संशोधन करता है, और यह authzफ़ाइल को अपडेट करता है।

फिर परियोजना प्रबंधक 'zzzz' उपयोगकर्ताओं के किसी भी समूह को जोड़ सकता है, हटा सकता है या घोषित कर सकता है। वह फाइल को कमिट करता है और authzफाइल अपडेट हो जाती है।

इस तरह, SVN व्यवस्थापक को व्यक्तिगत रूप से सभी SVN रिपॉजिटरी के लिए किसी भी और सभी उपयोगकर्ताओं को प्रबंधित करने की आवश्यकता नहीं है


27

एक गेटा जिसने मुझे पकड़ा:

[repos:/path/to/dir/] # this won't work

परंतु

[repos:/path/to/dir]  # this is right

आपको निर्देशिका पर एक अनुगामी स्लैश शामिल करने की आवश्यकता नहीं है, या आप विकल्प अनुरोध के लिए 403 देखेंगे।


8

आप svn + ssh :, का उपयोग कर सकते हैं और फिर यह दिए गए स्थान पर रिपॉजिटरी के अभिगम नियंत्रण पर आधारित है।

यह है कि मैं अपने uni में एक प्रोजेक्ट ग्रुप रिपॉजिटरी की मेजबानी करता हूं, जहां मैं कुछ और सेट नहीं कर सकता। बस एक निर्देशिका होने से जो समूह का मालिक है, और svn-admin (या जो कुछ भी था) को चलाने का मतलब है कि मुझे किसी भी कॉन्फ़िगरेशन को करने की आवश्यकता नहीं है।


यह एक भयावह जवाब है। यह ssh विधि खराब प्रलेखित है और केवल Linux के लिए काम करती है।
user1040323

1
बस सच नहीं है। केवल एक को अपने विंडोज सर्वर पर SSH डेमॉन चलाने की आवश्यकता है और svn + ssh विंडोज के लिए ठीक उसी तरह काम करता है जैसा कि लिनक्स के लिए करता है। कई ट्यूटोरियल हैं जो बताते हैं कि विंडोज़ मशीन पर एसएसएच कैसे चलाया जाए।
चक वोल्बर

इसके अलावा, प्रिय @ user1040323, विंडोज के अलावा अन्य गैर-लिनक्स प्लेटफ़ॉर्म हैं: यकीन है कि जिस मशीन पर मैं था वह लिनक्स नहीं था , लेकिन कुछ बीएसडी संस्करण।
मैथ्यू Schinckel

5

हालांकि मैं सुझाव दूंगा कि अपाचे दृष्टिकोण बेहतर है, एसवीएन सर्व ठीक काम करता है और बहुत सीधा है।

अपने भंडार को "my_repo" कहा जाता है, और इसे C: \ svn_repos में संग्रहीत किया जाता है:

  1. "C: \ svn_repos \ my_repo \ conf" में "पासवार्ड" नामक फ़ाइल बनाएँ। यह फ़ाइल इस तरह दिखनी चाहिए:

    [Users]
    username = password
    john = johns_password
    steve = steves_password
    
  2. C: \ svn_repos \ my_repo \ conf \ svnerve.conf सेट में:

    [general]
    password-db = passwd
    auth-access=read
    auth-access=write
    

यह उपयोगकर्ताओं को इस भंडार को पढ़ने या लिखने के लिए लॉग इन करने के लिए मजबूर करेगा।

प्रत्येक रिपॉजिटरी के लिए इन चरणों का पालन करें, केवल passwdप्रत्येक रिपॉजिटरी के लिए फ़ाइल में उपयुक्त उपयोगकर्ताओं को शामिल करें।


सावधानी: पासवर्ड SVN conf फ़ाइल में सादे-पाठ में संग्रहीत किए जाते हैं!
AVA

3

सबसे अच्छा तरीका है अपाचे को स्थापित करना और इसके माध्यम से पहुंच स्थापित करना। मदद के लिए svn बुक देखें । यदि आप अपाचे का उपयोग नहीं करना चाहते हैं, तो आप svnerve का उपयोग करके न्यूनतर अभिगम नियंत्रण भी कर सकते हैं।


0

अपाचे सबवर्सन पथ-आधारित प्राधिकरण का समर्थन करता है जो आपको अपने रिपॉजिटरी (फ़ाइलों या निर्देशिकाओं) में पथों पर उपयोगकर्ता और समूह खातों के लिए दानेदार अनुमतियों को कॉन्फ़िगर करने में मदद करता है। पथ-आधारित प्राधिकरण तीन पहुँच स्तरों का समर्थन करता है - नो एक्सेस, रीड ओनली और रीड / राइट।

पथ-आधारित प्राधिकरण अनुमतियाँ प्रति-भंडार या प्रति-सर्वर प्राधिकरण फ़ाइलों में एक विशेष सिंटैक्स के साथ संग्रहीत की जाती हैं। यहाँ SVNBook से एक उदाहरण है:

[calc:/branches/calc/bug-142]
harry = rw
sally = r

जब आपको कई पथ और खातों के साथ एक जटिल अनुमति संरचना की आवश्यकता होती है, तो आप विज़ुअलाइज़ेशन आईडी द्वारा प्रदान किए गए GUI- आधारित अनुमति प्रबंधन उपकरण से लाभ उठा सकते हैं:

  • सर्वर व्यवस्थापक VisualSVN सर्वर प्रबंधक कंसोल या PowerShell के माध्यम से उपयोगकर्ता और समूह अनुमतियाँ प्रबंधित कर सकते हैं,
  • गैर-व्यवस्थापक उपयोगकर्ता RepoCfg के माध्यम से अनुमतियाँ प्रबंधित कर सकते हैं।

VisualSVN सर्वर मैनेजर में रिपॉजिटरी की अनुमति यहाँ छवि विवरण दर्ज करें

PowerShell में रिपॉजिटरी की अनुमति यहाँ छवि विवरण दर्ज करें

गैर-व्यवस्थापक उपयोगकर्ता RepoCfg टूल के माध्यम से अनुमतियों का प्रबंधन कर सकते हैं यहाँ छवि विवरण दर्ज करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.