¿Cuáles son los permisos para configurar en la raíz SVN?

¿Cuáles son los permisos para configurar en la raíz SVN?

Estoy intentando proporcionar acceso remoto al servidor SVN a través de Apache. La situación se puede ilustrar así:

/root
    /public-project
        /trunk
        /branches
    /restricted-project
        /trunk
        /branches

Sólo hay un repositorio que contiene ambos proyectos.

Los proyectos públicos pueden ser vistos por cualquier persona (solo vistos, nunca modificados). Los restringidos pueden ser leídos/modificados sólo por los usuarios que pertenecen a grupos específicos. La configuración es la siguiente:

<Location "/root">
  DAV svn
  SVNPath [...]
  SVNIndexXSLT [...]
  [...]
  <LimitExcept PROPFIND OPTIONS REPORT>
    require ldap-group CN=SVN Administrators,OU=Subversion,DC=example,DC=com
  </LimitExcept>
</location>

<Location "/root/public-project">
  <LimitExcept GET PROPFIND OPTIONS REPORT>
    require ldap-group CN=Project1 Contributors,OU=Subversion,DC=example,DC=com
  </LimitExcept>
</location>

<Location "/root/restricted-project">
  require ldap-group CN=Project2 Contributors,OU=Subversion,DC=example,DC=com
</location>
  1. ¿Es lo suficientemente seguro o existe la posibilidad de que un invitado acceda a información confidencial del proyecto restringido?

  2. Al actualizar el código fuente del proyecto público a través de SVN, aparece el siguiente error:

    No autorizado para abrir la raíz de la operación de edición

    Apache error.log muestra los siguientes elementos:

    Se produjo una falla al ejecutar el editor de informes de actualización [500, #220000]
    No está autorizado para abrir la raíz de la operación de edición [500, #220000]

    En cuanto a access.log, muestra que el cliente SVN realizó un montón de PROPFIND(respuesta: HTTP 207) y OPTIONS(respuesta: HTTP 200), y finalmente:

    "INFORME /root/!svn/vcc/default HTTP/1.1" 500 241

    ¿Qué debo hacer para resolver este problema, es decir, habilitar el acceso público de sólo lectura para el proyecto público y mantener el proyecto restringido oculto a usuarios no autorizados?

Nota: otorgar el privilegio GET /roothace posible que un invitado cargue el código fuente del proyecto público, pero también hace que el comportamiento público sea el predeterminado. Preferiría restringir el acceso y otorgarlo solo en nodos que contengan proyectos públicos.

Respuesta1

Construí un entorno nuevo desde cero y jugué con su configuración, pero parece que elsoloLa forma es configurar todo como público de forma predeterminada y luego restringir proyectos particulares explícitamente.

Esto es completamente tonto desde el punto de vista de la seguridad, especialmente en el contexto donde se crean muchos proyectos, a veces no completamente automatizados, lo que hace que sea fácil cometer un error al olvidarse de poner una restricción. Dicho esto, también obliga a impulsar aún más la automatización, lo que sólo puede ser beneficioso.

Si alguien quiere jugar con la configuración, puedo proporcionarle la configuración actual utilizada.

información relacionada