He seguido las instrucciones establecidas en el libro titulado "Control de versiones con Subversion" sobre la forma correcta de configurar una configuración SVN basada en Apache. Hasta ahora, tengo un archivo "subversion.conf" en mi directorio "/etc/httpd/conf.d". En ese archivo, he definido una ubicación llamada "/ svn" y la he asignado a la ubicación de mis repositorios de subversión "/ x1/svn/(repo1), (repo2), (etc)". A saber, también he creado un usuario "svn" que posee el área de repositorio y he agregado permisos de grupo a Apache para que los repositorios sean accesibles desde Apache sin la necesidad de configurar todo lo que Apache (que creo que es una forma extraña de hacer cosas).Configuración de un usuario de solo lectura para SVN-Apache
De todos modos. Aquí está el problema con el que estoy teniendo problemas. Me gustaría configurar un "usuario" que pueda entregar a las personas en caso de que quiera permitirles descargar una copia del código fuente de una base de código de repositorio particular. Aquí hay algunos niveles de complejidad.
- A) les permitirá a los usuarios en general que las subvenciones del acceso de sólo lectura a todos los repositorios
- B) proporcionará a los de sólo lectura de los usuarios específicos para los repositorios específicos
De cualquier manera, y yo Imagine que sería más fácil explicar cómo lograr la opción (A), ¿cómo puedo hacerlo dada la configuración que he configurado para mi servidor web en este momento? La siguiente es una copia de mi archivo "subversion.conf", que está trabajando muy bien, sin embargo, requiere que cualquier usuario acceder a los repositorios deseados tienen acceso completo:
<Location /svn>
DAV svn
SVNParentPath /x1/svn
# Require SSL connection for password protection.
# In order to do this Apache needs to use a self-signed certificate
# Talk to Cordel and/or consult Apache Docs and OpenSSL docs
# SSLRequireSSL
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/svn-auth-file
Require valid-user
</Location>
Por lo tanto - ¿Cómo puedo agregar un solo usuario general que ser de solo lectura para todos los repositorios ubicados en SVNParentPath (opción A)? Y para obtener más crédito, ¿cómo puedo crear usuarios únicos de solo lectura para repositorios individuales (opción B)? Y todo esto al tiempo que conserva los usuarios que deben autenticarse para el acceso de lectura y escritura completo en todos los repositorios.
he tratado de lograr esto por mi cuenta, sin embargo, cuando se trata de digerir el significado de los métodos 'límite' Estoy confundido por la falta de una explicación recta de avance de los cuales se dispone de métodos y lo que cada método en realidad lo hace con respecto a la configuración de SVN/Apache. Quiero decir que el sentido común me dice que GET es GET (solo lectura) y que POST es una operación de escritura, pero esto es solo sentido común. He estado programando demasiado tiempo para suponer que algunos A-Hole no crearon la operación GET con la capacidad de escribir datos también. Esta es mi situación. ¿Alguien puede arrojar algo de luz?
¡Gracias!
Gracias - funcionaba muy bien! –
Primero tuve el problema de que el nombre del repositorio no se reconoció. La razón fue que utilicé SVNPath y no SVNParentPath en el archivo de configuración. ¡Después de cambiar a SVNParentPath, funciona muy bien! \ –
También vale la pena [desactivar las comprobaciones basadas en rutas] (http://svnbook.red-bean.com/es/1.7/svn-book.html#svn.serverconfig.httpd.authz .pathauthzoff) si no los necesita, ya que esto mejorará el rendimiento. – AdamS