2015-03-27 28 views
8

Ho configurato il mio server svn su apache2 in questo modo:strano comportamento di mod_authz_svn

<Location /svn_test> 
    DAV svn 
    SVNParentPath /path/to/SvnTest 
    AuthType Basic 
    AuthName "Subversion repository" 
    AuthUserFile "/path/to/passwd" 
    AuthzSVNAccessFile "/path/to/authz" 
    Require valid-user 
    SVNAdvertiseV2Protocol Off 
    AuthzSVNAnonymous Off 
</Location> 

E AuthZ di file configurato in questo modo:

[groups] 
g=hy 

[test:/] 
hy=r 
*= 

[test:/subdir] 
hy=r 
*= 

[test:/subdir1] 
hy=rw 
*= 

Il problema è, voglio controllare le subdir di permesso separato da altre directory, ma se cambio il permesso di subdir1 in "rw", posso scrivere in subdir, e se cambio il permesso di subdir1 in "r", il permesso di subdir diventa "r" come previsto.

In effetti, se cambio il permesso di qualsiasi directory su "rw", quelle directory voglio che sia di sola lettura, diventano scrivibili.

Ho incollato alcuni log di apache di seguito, nel caso sia utile.

Ogni volta che rimetto in moto apache2, si lamenta la versione non corrispondente python, ma nonostante ciò, tutto è normale, io sono sicuro se è rilevante:

[Fri Mar 27 15:55:44.381138 2015] [mpm_worker:notice] [pid 10693:tid 140245999884160] AH00295: caught SIGTERM, shutting down 
[Fri Mar 27 15:55:45.111049 2015] [:error] [pid 13438:tid 139851301021568] python_init: Python version mismatch, expected '2.7.5+', found '2.7.4'. 
[Fri Mar 27 15:55:45.111523 2015] [:error] [pid 13438:tid 139851301021568] python_init: Python executable found '/usr/bin/python'. 
[Fri Mar 27 15:55:45.111556 2015] [:error] [pid 13438:tid 139851301021568] python_init: Python path being used '/usr/lib/python2.7/:/usr/lib/python2.7/plat-x86_64-linux-gnu:/usr/lib/python2.7/lib-tk:/usr/lib/python2.7/lib-old:/usr/lib/python2.7/lib-dynload'. 
[Fri Mar 27 15:55:45.111585 2015] [:notice] [pid 13438:tid 139851301021568] mod_python: Creating 8 session mutexes based on 6 max processes and 25 max threads. 
[Fri Mar 27 15:55:45.111600 2015] [:notice] [pid 13438:tid 139851301021568] mod_python: using mutex_directory /tmp 
[Fri Mar 27 15:55:45.122215 2015] [mpm_worker:notice] [pid 13438:tid 139851301021568] AH00292: Apache/2.4.6 (Ubuntu) SVN/1.7.9 mod_python/3.3.1 Python/2.7.4 configured -- resuming normal operations 
[Fri Mar 27 15:55:45.122280 2015] [core:notice] [pid 13438:tid 139851301021568] AH00094: Command line: '/usr/sbin/apache2' 

risposta

3

http://svnbook.red-bean.com/en/1.7/svn.serverconfig.pathbasedauthz.html:

By di default, nessuno ha alcun accesso al repository.

Quindi non è necessario negare esplicitamente l'accesso per i percorsi.

Mi piacerebbe riscrivere la configurazione come segue:

[groups] 
g = hy 

[test:/] 
hy = r 

# Permissions are inherited from parent to child directory 
# and hy already has read access to the root of the repo and its subdirectories, 
# so this can be skipped: 
#[test:/subdir] 
#hy = r 

[test:/subdir1] 
hy = rw