On 12/01/2013 04:51 PM, olli hauer wrote:
> On 2013-12-01 15:39, Peter Flynn wrote:
>> I have a number of svn repositories running under Apache+subversion on
>> CentOS6/64, with Submin to provide a web GUI to manage them:
>>
>>   server.name/svn/foo
>>   server.name/svn/bar
>>   server.name/svn/blort
>> etc
>>
>> All of them are private; all but one of them are single-user (me) so
>> that I can carry on working from any of my machines in multiple
>> locations. One of them is shared with colleagues on a project: they all
>> have read/write privs on that repo.
>>
>> The URIs are not published or linked, and my colleagues are all well
>> aware of the need to keep their shared URI private. But the requirement
>> is that none of them must be open to casual read access via a web
>> browser, in case someone happen to stumble upon or guess the URI.
>>
>> I am having problems getting the access privs right, as they keep
>> causing "svn: E220000: Not authorized to open root of edit operation"
>> during an svn up. However, in a long exchange with the very helpful
>> submin support
>> (https://ssl.supermind.nl/collab/projects/submin/ticket/336) we have
>> failed to identify settings that work.
>>
>> Currently the svn/conf/authz file says
>>
>>> [groups]
>>> dev = a,b,c,d,e,me
>>>
>>> [foo:/]
>>> @dev = rw
>>>
>>> [bar:/]
>>> me = rw
>>>
>>> [blort:/]
>>> me = rw
>>
>> The Apache conf.d/subversion.conf says:
>>
>>> <Location /svn>
>>>    DAV svn
>>>    SVNParentPath /var/lib/submin/svn
>>> # removed GET from LimitExcept to prevent casual browsing
>>>    <LimitExcept PROPFIND OPTIONS REPORT>
>>>       AuthType Basic
>>>       AuthName "Authorization Realm"
>>>       AuthUserFile /etc/svn.auth
>>>       Require valid-user
>>>    </LimitExcept>
>>> </Location>
>>
>> and svn.auth specifies a username:encryptedpassword pair for each member
>> of [groups] in the usual way.
>>
>> 1. Browsing with a web browser causes a prompt for the username/password
>> as expected.
>>
>> 2. An svn ci operation works fine.
>>
>> 3. An svn up operation fails, and always causes an E220000 error.
>>
>> 4. Replacing the GET in the LimitExcept config allows svn up to work
>> without error, but allows casual browsing of the web interface.
>>
>> Is there a way to prevent the casual browsing while avoiding the E220000
>> error?
>>
> 
> 
> You do not have AuthzSVNAccessFile $path/to/authz in your Location config.

I'm sorry, I omitted to say that the submin installation included an
apache-svn.conf which is soft-linked into the httpd/conf.d directory,
and that *does* include the AuthzSVNAccessFile
/var/lib/submin/conf/authz line. This is the default for submin.

> <IfModule mod_authn_dbd.c>
>     DBDriver sqlite3
>     DBDParams "/var/lib/submin/conf/submin.db"
> 
>     <IfModule mod_dav_svn.c>
>         <Location "/svn">
>             DAV svn
>             SVNParentPath /var/lib/submin/svn
> 
>             AuthType Basic
>             AuthName "Subversion repository"
> 
>             # Authentication
>             AuthBasicProvider dbd
>             AuthDBDUserPWQuery "SELECT password FROM users WHERE name=%s"
> 
>             # Authorization
>             AuthzSVNAccessFile /var/lib/submin/conf/authz
> 
>             Satisfy Any
>             Require valid-user
>         </Location>
>     </IfModule>

(and mod_authn_dbd is included in httpd.conf). Is this Location
conflicting with the one in subversion.conf, and which one should take
precedence?

///Peter

Reply via email to