tutorial tortoise subversion repositorio linea funciona español crear como comandos svn authorization svn-administraton

tortoise - ¿Cómo configurar el control de acceso en SVN?



svn tutorial español (6)

He configurado un repositorio usando SVN y proyectos cargados. Hay varios usuarios trabajando en estos proyectos. Pero no todos trabajan en todos los proyectos y requieren acceso. Quiero configurar los permisos para cada uno de los proyectos con los usuarios.

¿Cómo logro esto?


@Stephen Bailey

Para completar su respuesta, también puede delegar los derechos de usuario al administrador del proyecto, a través de un archivo de texto sin formato en su repositorio.

Para hacer eso, configura su base de datos SVN con un archivo authz predeterminado que contiene lo siguiente.

########################################################################### # The content of this file always precedes the content of the # $REPOS/admin/acl_descriptions.txt file. # It describes the immutable permissions on main folders. ########################################################################### [groups] svnadmins = xxx,yyy,.... [/] @svnadmins = rw * = r [/admin] @svnadmins = rw @projadmins = r * = [/admin/acl_descriptions.txt] @projadmins = rw

Este archivo authz predeterminado autoriza a los administradores de SVN a modificar un archivo de texto visible simple dentro de su repositorio SVN, llamado ''/admin/acl_descriptions.txt'' , en el que los administradores SVN o de proyecto modificarán y registrarán a los usuarios.

A continuación, configura un enganche precompromiso que detectará si la revisión está compuesta por ese archivo (y solo ese archivo).

Si es así, estos scripts de gancho validarán el contenido de su archivo de texto plano y verificará si cada línea cumple con la sintaxis correcta de SVN.

Luego, un gancho post-commit actualizará el archivo /conf/authz con la concatenación de:

  • el archivo TEMPLATE authz presentado anteriormente
  • el archivo de texto sin formato /admin/acl_descriptions.txt

La primera iteración es realizada por el administrador SVN, agrega:

[groups] projadmins = zzzz

Él confirma su modificación y eso actualiza el archivo authz .

Luego, el administrador del proyecto ''zzzz'' puede agregar, eliminar o declarar cualquier grupo de usuarios y cualquier usuario que quiera. Él confirma el archivo y el archivo authz se actualiza.

De esta forma, el administrador SVN no tiene que seguir a todos los usuarios de todos los repositorios SVN .


Aunque sugeriría que el enfoque de Apache es mejor, SVN Serve funciona bien y es bastante sencillo.

Suponiendo que su repositorio se llama "my_repo", y se almacena en c: / svn_repos:

  1. Crea un archivo llamado "passwd" en "C: / svn_repos / my_repo / conf". Este archivo debería verse así:

    [Users] username = password john = johns_password steve = steves_password

  2. En el conjunto c: / svn_repos / my_repo / conf / svnserve.conf

    [general] password-db = passwd auth-access=read auth-access=write

Esto obligará a los usuarios a iniciar sesión para leer o escribir en este repositorio.

Siga estos pasos para cada repositorio, solo incluya los usuarios apropiados en el archivo passwd para cada repositorio.


En su carpeta svn / repos / YourRepo / conf , encontrará dos archivos, authz y passwd . Estos son los dos que necesitas ajustar.

En el archivo passwd necesita agregar algunos nombres de usuario y contraseñas. Supongo que ya has hecho esto ya que hay personas que lo usan:

[users] User1=password1 User2=password2

Entonces desea asignar permisos según corresponda con el archivo authz :

Cree los grupos conceptuales que desee y agregue personas a él:

[groups] allaccess = user1 someaccess = user2

A continuación, elija qué acceso tienen desde los permisos y el nivel del proyecto.

Así que demos acceso a todos los chicos de "acceso total" desde la raíz:

[/] @allaccess = rw

Pero solo dales a nuestros chicos de "acceso limitado" acceso de solo lectura a algún proyecto de nivel inferior:

[/someproject] @someaccess = r

También encontrará documentación simple en los archivos authz y passwd .


La mejor manera es configurar Apache y establecer el acceso a través de él. Consulte el libro svn para obtener ayuda. Si no quiere usar Apache, también puede hacer un control de acceso minimalista usando svnserve.


Puede usar svn + ssh :, y luego se basa en el control de acceso al repositorio en la ubicación determinada.

Así es como organizo un repositorio de grupos de proyectos en mi Uni, donde no puedo configurar nada más. Solo tener un directorio que pertenezca al grupo y ejecutar svn-admin (o lo que sea) allí significa que no tuve que hacer ninguna configuración.


Uno gotcha que me atrapó:

[repos:/path/to/dir/] # this won''t work

pero

[repos:/path/to/dir] # this is right

No debe incluir una barra inclinada en el directorio, o verá 403 para la solicitud de OPCIONES.