2008-11-11 16 views
5

Estoy haciendo algo de mantenimiento en un servidor svn privado. La autenticación se maneja a través de Apache basic HTTP + mod_authz_svn. Necesito tenerlo para que todos los usuarios tengan acceso de lectura/escritura, excepto para un solo usuario de solo lectura. Sin embargo, el usuario de solo lectura aún necesita ser autenticado. Configuro mi archivo de configuración authz de esta manera:Usuario único de solo lectura para svn

[/] 
* = rw 
read-only = r

Pero esto no funciona. El usuario "de solo lectura" aún puede confirmar cambios. Puedo hacer que las cosas se lean, solo para todos, pero el * bit parece anular lo que intento establecer para "solo lectura".

Fwiw, pieza correspondiente de la configuración del Apache es:

 <Location /repos> 
    DAV svn 
    SVNPath ... 
    SVNIndexXSLT "/svnindex.xsl" 

    AuthzSVNAccessFile ... 

    AuthType Basic 
    AuthName ... 
    AuthUserFile ... 
    Require valid-user 
</Location> 

Respuesta

8

En este caso, el usuario de sólo lectura todavía tiene acceso de escritura, ya que también coincide con el grupo *.

Una forma segura de lograr lo que desea es crear un grupo de todos los usuarios, excepto de solo lectura, p. Ej.

[groups] 
all-but-ro = harry, sally, ... 

[/] 
@all-but-ro = rw 
read-only = r 

(alternativamente, que sólo podría generar muchas líneas = rw fuera del archivo passwd)

Podría ser que coincida con SVN de arriba a abajo - esto no está documentado, y no he probado . Así que trate de

[/] 
read-only = r 
* = rw 
+0

+1: _Exactamente_ lo que iba a decir :-) – alastairs

+0

Intenté la coincidencia inversa, no funciona. ¿Hay alguna manera de hacer que el grupo sea automático? Prefiero no tener que reconstruir este archivo cada vez que se agrega un usuario al servidor. – iconoplast

+0

Si ese es el archivo completo, ¿cuál es el problema al construirlo automáticamente? –

0

Hmmm, los mensajes anteriores pueden ser correctas en el orden de ACL, pero ...

Mi configuración incluye

AuthzSVNAccessFile "<path-to-svn-acl-file>" 

podría esto también puede ser un problema?

Cuestiones relacionadas