2015-03-27 12 views
8

Я настроил мой SVN сервера на apache2, как это:Странное поведение 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> 

И AuthZ файл настроен так:

[groups] 
g=hy 

[test:/] 
hy=r 
*= 

[test:/subdir] 
hy=r 
*= 

[test:/subdir1] 
hy=rw 
*= 

Проблема заключается в том, я хочу, чтобы контролировать подкаталогов-х разрешение отдельно от других каталогов, но если я изменю разрешение subdir1 на «rw», я могу записать в subdir, и если я изменю разрешение subdir1 на «r», разрешение субдира станет «r», как ожидалось.

Фактически, если я изменяю разрешение какой-либо директории на «rw», эти директории я хочу, чтобы он был доступен только для чтения, стал доступным для записи.

Я приклеил несколько журналов apache ниже, в случае, если это будет полезно.

Everytime я перезагрузить apache2, он жалуется на несоответствие питона версии, но, несмотря на это, все нормально, я уверен, если это отношение:

[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' 

ответ

3

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

По default, никто не имеет доступа к репозиторию вообще.

Поэтому вам не нужно явно запрещать доступ для ваших путей.

Я бы переписать конфиг следующим образом:

[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