Podążyłem za wskazówkami zawartymi w książce "Kontrola Wersji z Subversion" dotyczącej właściwego sposobu konfigurowania konfiguracji SVN opartej na Apache. Do tej pory mam plik "subversion.conf" w moim katalogu "/etc/httpd/conf.d". W tym pliku zdefiniowałem lokalizację o nazwie "/ svn" i zmapowałem ją do lokalizacji moich repozytoriów subversion "/ x1/svn/(repo1), (repo2), (etc)". Aby to osiągnąć, stworzyłem także użytkownika "svn", który jest właścicielem obszaru repozytoriów i dodał uprawnienia grupowe do Apache, aby repozytoria były dostępne z Apache bez potrzeby ustawiania wszystkiego, co jest własnością Apache (co, jak sądzę, jest dziwnym sposobem rzeczy).Konfigurowanie użytkownika tylko do odczytu dla SVN-Apache
W każdym razie. Tutaj jest problem, z którym mam problem. Chciałbym ustawić "użytkownika", który będę mógł przekazać ludziom w przypadku, gdy chcę zezwolić im na pobranie kopii kodu źródłowego określonej bazy kodu repozytorium. Jest tu kilka poziomów złożoności.
- A) pozwalają im zwykłego użytkownika, że stypendia tylko do odczytu dostęp do wszystkich repozytoriów
- b) zapewniają szczególne „tylko do odczytu” użytkowników do poszczególnych repozytoriów
Tak czy inaczej, a ja wyobraź sobie, że łatwiej byłoby wyjaśnić, jak wykonać opcję (A), jak mogę to zrobić, biorąc pod uwagę konfigurację, którą skonfigurowałem na mój serwer WWW w chwili obecnej? Poniżej znajduje się kopia mojego „subversion.conf” pliku, który działa dobrze, jednak wymaga, aby każdy użytkownik dostępu do pożądanych repozytoriów mieć pełny dostęp:
<Location /svn>
DAV svn
SVNParentPath /x1/svn
# Require SSL connection for password protection.
# In order to do this Apache needs to use a self-signed certificate
# Talk to Cordel and/or consult Apache Docs and OpenSSL docs
# SSLRequireSSL
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/svn-auth-file
Require valid-user
</Location>
tak - w jaki sposób można dodać jednego użytkownika ogólne, które być tylko do odczytu dla wszystkich repozytoriów znajdujących się w SVNParentPath (opcja A)? A dla dodatkowego kredytu - jak mogę utworzyć unikalnych użytkowników tylko do odczytu dla poszczególnych repozytoriów (opcja B). A wszystko to przy zachowaniu użytkowników, którzy muszą się uwierzytelnić, aby uzyskać pełny dostęp do odczytu i zapisu we wszystkich repozytoriach.
Próbowałem to osiągnąć na własną rękę, jednak próbując przetrawić znaczenie metod "Limit", jestem zaskoczony brakiem prostego wyjaśnienia, które metody są dostępne i jaka jest każda metoda w rzeczywistości dotyczy konfiguracji SVN/Apache. Mam na myśli zdrowy rozsądek mówi mi, że GET jest GET (tylko do odczytu) i że POST jest operacją zapisu, ale to jest tylko zdrowy rozsądek. Zbyt długo programowałem, aby założyć, że niektóre A-Hole nie stworzyły operacji GET z możliwością zapisu danych. To jest moje kłopotliwe położenie. Czy ktoś może rzucić nieco światła?
Dziękujemy!
Dziękuję - pięknie się spisałeś! –
Po raz pierwszy miałem problem z tym, że nazwa repozytorium nie została rozpoznana. Powodem było to, że użyłem SVNPath, a nie SVNParentPath w pliku konfiguracyjnym. Po przełączeniu na SVNParentPath działa ładnie! \ –
Warto też [wyłącza kontrole oparte na ścieżce] (http://svnbook.red-bean.com/en/1.7/svn-book.html#svn.serverconfig.httpd.authz .pathauthzoff), jeśli ich nie potrzebujesz, ponieważ poprawi to wydajność. – AdamS