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:
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
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.